如果我在任何文本區域中有這樣的專案串列,我可以使用小書簽對唯一值進行排序。
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
是否可以修改代碼以回傳這樣的專案...
a, b, c, d
我可以在 python 中做到這一點。但我想知道是否可以使用 JavaScript 小書簽。
myl = [i.strip() for i in text.split(',')]
myl.sort()
', '.join(set(myl))
uj5u.com熱心網友回復:
在這條線上:
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(',')
uj5u.com熱心網友回復:
您可以為此嘗試 lodash,正如其他答案中提到的,您需要首先將單詞格式從 : a 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)
uj5u.com熱心網友回復:
這會更好,因為由于您的輸入中有空格,我們必須使用正則運算式來拆分字串。
b = Array.from(
new Set(b.split(/[ ,] /))).sort().reverse().join(',')
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/467353.html
標籤:javascript 小书签
