【发布时间】:2021-05-01 09:02:03
【问题描述】:
我有一个这样的数组:
arr =
[
[0 , abc ],
[7 , def ],
[10, ghi ],
[0 , abcjkl]
]
我想要的是根据第 0 个位置的值(在我的示例中:[0, abc], [0, abcjkl])查找重复项,并在第一个位置删除具有较短字符串的数组。结果应如下所示:
[
[7 , def ],
[10, ghi ],
[0 , abcjkl]
]
感谢您的帮助。
编辑:
我的算法似乎不是最好的方法。
function findDupes(arr) {
let dupe = null;
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length; j++) {
if (arr[i] !== arr[j]) {
if (arr[i][1] === arr[j][1]) {
if (arr[i][0].length >= arr[j][0].length) {
dupe = arr[j];
} else {
dupe = arr[i];
}
}
}
}
}
return dupe;
}
let check = findDupes(arr);
while (check) {
filteredValues.splice(arr.indexOf(check), 1);
check = findDupes(arr);
}
【问题讨论】:
-
到目前为止你有什么尝试?
-
@expressjs123 我编辑了问题。
标签: javascript arrays duplicates