对同一行上的唯一值进行排序
sort unique values on the same line
如果我在任何文本区域中都有这样的项目列表,我可以使用小书签对唯一值进行排序。
a
b
d
c
c
我点击小书签,列表更正为:
a
b
c
d
代码:
javascript: (
function() {
Array.from(document.querySelectorAll('textarea')).map(function(b) {
var a = document.createElement('div');
var d = document.createElement('button');
d.textContent = '↑';
d.addEventListener('click', function(f) {
f.preventDefault();
b.value = Array.from(new Set(b.value.split('\n'))).sort().join('\n')
});
var c = document.createElement('button');
c.textContent = '↓';
c.addEventListener('click', function(f) {
f.preventDefault();
b.value = Array.from(new Set(b.value.split('\n'))).sort().reverse().join('\n')
});
a.appendChild(d);
a.appendChild(c);
b.parentNode.insertBefore(a, b)
})
}
)();
但是如果所有项目都像这样在同一行上,这将不起作用...
a , b,d , c,c
是否可以将代码修改为return这样的项目...
a, b, c, d
我可以在 python 中做到这一点。但我想知道是否可以使用 JavaScript 小书签。
myl = [i.strip() for i in text.split(',')]
myl.sort()
', '.join(set(myl))
这一行:
b.value = Array.from(
new Set(b.value.split('\n'))).sort().reverse().join('\n')
你只需要把'\n'
改成,
,比如:
b.value = Array.from(
new Set(b.value.split(','))).sort().reverse().join(',');
b.value.forEach(item => item.trim()); //to remove trailing whitespaces
您可以为此尝试 lodash,
正如其他答案中提到的,您需要先更改单词格式
从 :
一种
b
d
C
C
到 :
a,b,d,c,c
如果更改
let x= // your values e.g a,b,d,c,c
//
let valuesArray=_.split(x,',')
uniqueFromArray=_.uniq(valuesArray)
如果不变
let x= // your current input values
//
let valuesArray=_.split(x,'\n')
uniqueFromArray=_.uniq(valuesArray)
这样会更好,因为您的输入中有空格,我们必须使用正则表达式来拆分字符串。
b = Array.from(
new Set(b.split(/[ ,]+/))).sort().reverse().join(',')
如果我在任何文本区域中都有这样的项目列表,我可以使用小书签对唯一值进行排序。
a
b
d
c
c
我点击小书签,列表更正为:
a
b
c
d
代码:
javascript: (
function() {
Array.from(document.querySelectorAll('textarea')).map(function(b) {
var a = document.createElement('div');
var d = document.createElement('button');
d.textContent = '↑';
d.addEventListener('click', function(f) {
f.preventDefault();
b.value = Array.from(new Set(b.value.split('\n'))).sort().join('\n')
});
var c = document.createElement('button');
c.textContent = '↓';
c.addEventListener('click', function(f) {
f.preventDefault();
b.value = Array.from(new Set(b.value.split('\n'))).sort().reverse().join('\n')
});
a.appendChild(d);
a.appendChild(c);
b.parentNode.insertBefore(a, b)
})
}
)();
但是如果所有项目都像这样在同一行上,这将不起作用...
a , b,d , c,c
是否可以将代码修改为return这样的项目...
a, b, c, d
我可以在 python 中做到这一点。但我想知道是否可以使用 JavaScript 小书签。
myl = [i.strip() for i in text.split(',')]
myl.sort()
', '.join(set(myl))
这一行:
b.value = Array.from(
new Set(b.value.split('\n'))).sort().reverse().join('\n')
你只需要把'\n'
改成,
,比如:
b.value = Array.from(
new Set(b.value.split(','))).sort().reverse().join(',');
b.value.forEach(item => item.trim()); //to remove trailing whitespaces
您可以为此尝试 lodash, 正如其他答案中提到的,您需要先更改单词格式 从 : 一种 b d C C 到 : a,b,d,c,c
如果更改
let x= // your values e.g a,b,d,c,c
//
let valuesArray=_.split(x,',')
uniqueFromArray=_.uniq(valuesArray)
如果不变
let x= // your current input values
//
let valuesArray=_.split(x,'\n')
uniqueFromArray=_.uniq(valuesArray)
这样会更好,因为您的输入中有空格,我们必须使用正则表达式来拆分字符串。
b = Array.from(
new Set(b.split(/[ ,]+/))).sort().reverse().join(',')