javascript - 在 JavaScript 中,如何检查数组是否具有重复的多个值?
问题描述
对不起,我英语说得不好。
这些是我的简单代码,带有一些参数数组:
if (link.indexOf({"x" : "1" , "y":"2" , "z": "3"}) === -1) {
link.push({
"x": "1",
"y": "2",
"z": "3"
});
} else {
alert("Duplicate");
}
在“for”循环中使用但不警告重复。
解决方案
您可以为此创建一个单独的函数来检查元素是否存在于列表中。
尝试这个:
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);
推荐阅读
- swift - 无法转换“URL”类型的值?到预期的参数类型“数据”
- android - android sdk 中的 NDK(并排)是什么?
- bitcoin - 通过 https 访问比特币节点
- c# - 将 DataTables 绑定到 WPF Tabcontrol 上的 Datagrids
- javascript - React-Native Picker TypeError:无法读取未定义的属性“地图”
- javascript - 用于验证的 ajax 成功函数中的两个字段的焦点冲突
- android - 检查设备是否使用 androidx 生物识别提示启用了生物识别功能
- angular - 我使用“angular-froala-wysiwyg”,但菜单栏减少了
- angular - 当父组件中的选择发生(更改)时如何在子组件中执行函数
- flutter - 为什么我的 VS 代码终端无法识别“颤振”一词?