gpt4 book ai didi

javascript - 迭代对象以查看是否找到相同的值

转载 作者:行者123 更新时间:2023-11-29 22:07:11 24 4
gpt4 key购买 nike

我想做下面的语句来搜索对象并查看它们是否包含相同的值。

$.each( winning, function( idx, obj ) {

});

我的对象看起来像这样:

var winning = [{1:0, 2:0, 3:0},{4:0, 5:0, 6:0},{7:0, 8:0, 9:0},
{1:0, 4:0, 7:0},{2:0, 5:0, 8:0},{3:0, 6:0, 9:0},
{1:0, 5:0, 9:0},{7:0, 5:0, 3:0}];

假设我正在查看对象数组中的某个对象是否所有值都为 1。所以 {1:1, 2:1, 3:1} 会返回 true 但 {1:1, 2:0, 3:1} 会返回 false。这可能吗?我能看到它完成的唯一方法是为每个单独的对象创建大量循环。我对 jQuery 或 JavaScript 不是很熟悉。

最佳答案

尝试:

var winning = [{1:0, 2:0, 3:0},{4:0, 5:0, 6:0},{7:0, 8:0, 9:0},
{1:0, 4:0, 7:0},{2:0, 5:0, 8:0},{3:0, 6:0, 9:0},
{1:0, 5:0, 9:0},{7:0, 5:0, 3:0},{7:1, 5:1, 3:1},{7:-1, 5:-1, 3:-1},{7:-1, 5:-1, 3:0},{7:2, 5:2, 3:2}];
var len = winning.length;
for(var i=0;i<len;i++){
var data = winning[i];
var txt = "";
var val = [];
var flg = 1;
$.each(data,function(k,v){
val.push(v);
txt += k+":"+v+" ";
});
var vlen = val.length;
for(var j=0;j<vlen;j++){
for(var k=j+1;j<vlen;j++){
if(val[j] != val[k]){
flg = 0;
break;
}
}
}
if(flg == 0){
txt += " false";
}
else{
if(val[0] == 0){
txt += " false";
}
else if(val[0] == 1){
txt += " true 1";
}
else if(val[0] == -1){
txt += " true -1";
}
else if(val[0] == 2){
txt += " true 2";
}
}
$("body").append("<div>"+txt+"</div>");
}

Fiddle here.

关于javascript - 迭代对象以查看是否找到相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20321509/

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