我有这个:
var mergeUniqueItems = ["-JsDEcxz_ZSGFLKwd1QM",
"-JsJ2NXGDYKI6QRsuXVK",
"-JsJ2RK-kOG2eGcG04xF",
"-JsJ2RK-kOG2eGcG04xF",
"-JsJ2YLPiP6751zh8geS"]
我用过这个:
var duplicateArray = [];
for (var i = 0; i < mergeUniqueItems.length; i ++){
for (var j = 1; j < mergeUniqueItems.length; j ++){
if (mergeUniqueItems[i] == mergeUniqueItems[j]){
duplicateArray.push(mergeUniqueItems[i]);
}
}
}
console.log(duplicateArray);
结果变成了这样:
["-JsJ2NXGDYKI6QRsuXVK",
"-JsJ2RK-kOG2eGcG04xF",
"-JsJ2RK-kOG2eGcG04xF",
"-JsJ2RK-kOG2eGcG04xF",
"-JsJ2RK-kOG2eGcG04xF",
"-JsJ2YLPiP6751zh8geS"]
当我的期望是 1 个数组中的重复项时,如下所示:
["-JsJ2RK-kOG2eGcG04xF"]
如果有多个重复值,数组应该是这样的:
["-JsJ2RK-kOG2eGcG04xF", "another_duplicate_1", "another_duplicate_2", ...]
我真的不知道我的代码有什么问题,请帮忙。
谢谢
最佳答案
从 i+1
而不是 1
开始 j
,并检查以确保您尚未添加重复值。
for (var i = 0; i < mergeUniqueItems.length; i ++){
for (var j = i + 1; j < mergeUniqueItems.length; j ++){
if (mergeUniqueItems[i] == mergeUniqueItems[j]){
if (duplicateArray.indexOf(mergeUniqueItems[i]) < 0)
duplicateArray.push(mergeUniqueItems[i]);
break;
}
关于javascript - 使用 Javascript 在 1 个数组中查找公共(public)元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30966902/