首页 > 解决方案 > 在 JavaScript 中,如何检查数组是否具有重复的多个值?

问题描述

对不起,我英语说得不好。

这些是我的简单代码,带有一些参数数组:

 if (link.indexOf({"x" : "1" ,  "y":"2" ,  "z": "3"}) === -1) {
    link.push({
        "x": "1",
        "y": "2",
        "z": "3"
    });    
} else {
    alert("Duplicate");
}

在“for”循环中使用但不警告重复。

标签: javascriptarrays

解决方案


您可以为此创建一个单独的函数来检查元素是否存在于列表中。

尝试这个:

function doesExistInList(list, obj) {
  for (let i = 0; i < list.length; i++) {
    if (list[i].x === obj.x && list[i].y === obj.y && list[i].z === obj.z) {
      return true;
    }
  }
  return false;
}

let link = [];
let obj = { "x": "1", "y": "2", "z": "3" };
if (doesExistInList(link, obj) == false) {
  link.push(obj);//insert same object to list
} else {
  alert("Duplicate");
}
console.log(link);


推荐阅读