对对象进行迭代,查看是否找到相同的值
Iterating over object to see if identical values are found
我想做下面的语句来搜索对象,看看它们是否包含相同的值。
$.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>");
}
在这里打转
您可以使用hasOwnProperty。。。
function checkForOne()
{
$(winning).each(function(i) {
for (var i in this) {
if(this.hasOwnProperty(i)){
if(this[i]==1)
{
alert("contains 1"); return false;
}
}
}
});
return true;
}
使用您的示例。。。
$.each( winning, function( idx, obj ) {
var groupSum = obj.reduce(function(previousValue, currentValue, index, array){
return previousValue + currentValue;
});
if (groupSum == 3 || groupSum == -3) alert('Identicals');
});
相关文章:
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 验证会话中是否存在对象's数组
- JS数组-检查对象值是否重复
- 如何检查数组中的对象是否等于选项值
- IndexedDB对象键:大小是否重要
- 测试对象是否相等和/或对象是否有更多的关键点,但仍然与共同的关键点相等
- 确定javascript中的html表对象是否具有<colgroup>是否
- 验证对象是否为null Javascript/Angularjs
- 使用js/jQuery检查对象(而不是元素)是否真的存在
- 确定var是否是javascript中的elementFinder对象的方法是什么
- 如何通过json对象选项卡中的Id来检查对象是否存在
- 是否可以在javascript中反序列化java对象
- 尝试简化检查对象键是否为true并将其推送到另一个对象
- jQuery-检测选择对象是否添加或删除了选项
- 将对象从另一个不可变的Map分配给Map是否意味着深度克隆
- 查找对象数组是否包含其中一个标记的最快方法
- 检查对象是否是mongo游标
- 检查对象的所有属性是否未定义
- JavaScript对象作为哈希?复杂性是否大于O(1)