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

Javascript 迭代对象以查看是否找到相同的值,javascript,jquery,Javascript,Jquery,我想在下面声明搜索对象,看看它们是否包含相同的值 $.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:

我想在下面声明搜索对象,看看它们是否包含相同的值

$.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。

您可以使用

用你的例子

$.each( winning, function( idx, obj ) {
    var groupSum = obj.reduce(function(previousValue, currentValue, index, array){
        return previousValue + currentValue;
    });
    if (groupSum == 3 || groupSum == -3) alert('Identicals');
});
尝试:

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=长度;

对于(var i=0;iIs它始终是3个组?只需对每个组的值求和,看看它是否
==3
。是的,默认情况下它将是0,但根据提供的答案,它可以是-1或1。我如何迭代所有对象并轻松求和。我一直在修改此代码,试图了解它在一段时间内是如何工作的小时,我仍然有问题。我想添加另一个标志选项,因为我可以在对象中插入1或-1。我想查看对象是否包含-1。因此
{1:-1,2:-1,3:-1}
也将返回true,但会显示另一条消息。我似乎不知道如何执行此操作。@Yamaha32088我已编辑了答案。您可以添加任意多个选项。基本逻辑是所有3个数字必须相同。现在清楚了吗?哦,对了……需要先将其转换为数组。
$.each( winning, function( idx, obj ) {
    var groupSum = obj.reduce(function(previousValue, currentValue, index, array){
        return previousValue + currentValue;
    });
    if (groupSum == 3 || groupSum == -3) alert('Identicals');
});
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>");
}