gpt4 book ai didi

javascript - 如何检查数组在特定对象属性上是否唯一?

转载 作者:搜寻专家 更新时间:2023-11-01 04:16:05 24 4
gpt4 key购买 nike

我有一个对象数组:

var array1 = [
{
property1: 10,
property2: "abc"
},
{
property1: 11,
property2: "def"
},
{
property1: 10,
property2: "ghi"
}
];

现在我想要的是,根据 property1 的值,这个数组将被认为不是唯一的。

这意味着该数组包含 2 个 property1=10 的元素,因此该数组不包含 property1 的唯一值。

要检查这一点,我可以使用 for 循环:

for (var i = 0; i < array1.length; i++) {
var array2 = array1.slice(); // copy array
array2.remove(array1[i]);
var temppropety1 = array1[i].property1;
for (var j = 0; j < array2.length; j++) {
if (array2[J].property1==temppropety1) {
return true;
}
}
}

但是有没有更简单的方法或库可以找到它?

最佳答案

这是测试 property1 唯一性的直接方法。循环遍历外部数组中的对象,并将每个对象的 property1 添加到临时数组(如果它不在临时数组中)。如果遇到重复值,返回 false 表示 property1 不是唯一的。

function isUnique(arr) {
var tmpArr = [];
for(var obj in arr) {
if(tmpArr.indexOf(arr[obj].property1) < 0){
tmpArr.push(arr[obj].property1);
} else {
return false; // Duplicate value for property1 found
}
}
return true; // No duplicate values found for property1
}

演示:http://jsbin.com/lohiqihipe/1/

关于javascript - 如何检查数组在特定对象属性上是否唯一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30499652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com