gpt4 book ai didi

javascript - 对象循环数组,比较键值

转载 作者:行者123 更新时间:2023-11-30 12:17:13 26 4
gpt4 key购买 nike

我有一个对象数组,所有对象都具有相同的键。我想检查所有对象中的 2 个键(在本例中为“a”和“b”)是否具有相同的值。意思是 a === a 和 b === b,跨越所有对象。

var arr = [{a:"x", b:2, c:3, d:4},{a:1, b:2, c:3, d:4},{a:1, b:2, c:3, d:4},{a:1, b:2, c:3, d:4}];

如果其中一个键值(a 或 b)与其他键值不匹配,我想返回 false。这种情况应该返回 false,因为 arr[0] 中的“a”=“x”,而其他所有都等于 1;

这是我的尝试。显然行不通,但我试图让 2 个循环一次比较 2 个对象。例如,第一个循环将从 arr[0] 开始,第二个循环将从 arr[1] 开始,然后比较 arr[3] 和 arr[4],依此类推。尽管数组的长度不会总是偶数。

function compareKeyVals(arr){

for(var i = 0; i<arr.length; i+=2){
for(var j = 1; j<arr.length; j+=2){
for(key in arr[i]){
for(keyz in arr[j]){
if(key === "a" && keyz === "a"){
if(arr[i][key] != arr[j][keyz]){
return false;
}
}
}
}
}
}
}

compareKeyVals(arr);

谢谢。

最佳答案

因为它们都必须相等,您可以只检查第一个对象的 ab 属性,并将所有其他对象与它进行比较。像这样:

for(var i=1; i<arr.length; i++){
if(arr[i].a !== arr[0].a || arr[i].b !== arr[0].b) {
return false;
}
}
return true;

更新:改成严格比较,灵感来自Marc的回答

关于javascript - 对象循环数组,比较键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32128126/

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