我對編碼很陌生,我正在練習一些陣列操作。基本上,我正在嘗試組織這個陣列:
const sequence = ["abc", "abcd", "bca", "bdc", "cbd", "bdc", "acb"];
像這樣:
[[ 'abc', 'bca', 'acb'], ['bdc', 'cbd', 'bdc'], ['abcd']]
到目前為止,這就是我所擁有的:
const sequence = ["abc", "abcd", "bca", "bdc", "cbd", "bdc", "acb"];
let finalSequence = [];
let sequence2 = [];
let sequence3 = [];
let sequence4 = [];
sequence.forEach(element => {
for (const elem of element ) {
sequence2 = sequence.filter(e => e.includes(elem) && e.length === element.length)
sequence3 = sequence.filter(e => !e.includes(elem))
sequence4 = sequence.filter(e => e.includes(elem) && e.length !== element.length)
return sequence2, sequence3, sequence4
}
})
console.log(sequence2)
console.log(sequence3)
console.log(sequence4)
finalSequence.push(sequence2, sequence3, sequence4)
這僅適用于提供的陣列,但是一旦我開始測驗它并更多地使用它,很明顯這不是解決它的正確方法。
非常感謝有關如何解決此問題的任何建議或意見。非常感謝!
uj5u.com熱心網友回復:
您可以標準化每個字串以獲得排序的字母,并將其用作所有相似字串的組。
const
sequence = ["abc", "abcd", "bca", "bdc", "cbd", "bdc", "acb"],
grouped = Object.values(sequence.reduce((r, s) => {
const key = Array.from(s).sort().join('');
(r[key] ??= []).push(s);
return r;
}, {}));
console.log(grouped);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/333894.html
標籤:javascript 数组 排序
上一篇:Pandas:如何檢查列是否包含值0然后根據某些規則對選定的行資料進行排序?
下一篇:字典按型別排序值
