我将不胜感激任何帮助。
这已经过编辑,可以更清楚地描述如何评估数组。
我试图找出如何比较多维数组的所有元素以确定元素是否包含真集。
标准
数组示例
var obj = {
'Element001' : {
'ID' : 'value',
'Color' : 'value',
'Type' : 'value'
},
'Element002' : {
'ID' : 'value',
'Color' : 'value',
'Type' : 'value'
}
...
};
不同数组如何评估的示例。
以下数组应评估为“TRUE”,因为所有元素都是红色且没有元素共享类型。
var obj = {
'Element001' : { 'ID' : '1', 'Color' : 'red', 'Type' : 'b' },
'Element002' : { 'ID' : '2', 'Color' : 'red', 'Type' : 'a' }
'Element003' : { 'ID' : '21', 'Color' : 'red', 'Type' : 'c' }
};
以下数组应评估为“TRUE”,因为所有元素都是“b”类型且没有元素共享颜色。
var obj = {
'Element001' : { 'ID' : '1', 'Color' : 'red', 'Type' : 'b' },
'Element002' : { 'ID' : '2', 'Color' : 'blue', 'Type' : 'b' }
'Element003' : { 'ID' : '21', 'Color' : 'green', 'Type' : 'b' }
};
以下数组应评估为“TRUE”,因为所有元素都是“蓝色”,所有元素都是“c”类型。
var obj = {
'Element001' : { 'ID' : '1', 'Color' : 'blue', 'Type' : 'c' },
'Element002' : { 'ID' : '2', 'Color' : 'blue', 'Type' : 'c' }
'Element003' : { 'ID' : '21', 'Color' : 'blue', 'Type' : 'c' }
};
以下数组应评估为“FALSE”,因为两个元素共享一个“红色”颜色。每条规则:如果任何两个元素共享一个特征,他们必须共享它。因此,所有元素都必须是红色的。同样在此示例中,没有元素共享类型。但即使它们都是“a”类型,由于颜色属性,它仍然会评估为“FALSE”。
var obj = {
'Element001' : { 'ID' : '1', 'Color' : 'red', 'Type' : 'b' },
'Element002' : { 'ID' : '2', 'Color' : 'red', 'Type' : 'a' },
'Element003' : { 'ID' : '21', 'Color' : 'blue', 'Type' : 'c' }
};
另一个评估为“FALSE”的是一个没有共享特征的集合 比如像这样......
var obj = {
'Element001' : { 'ID' : '1', 'Color' : 'red', 'Type' : 'b' },
'Element002' : { 'ID' : '2', 'Color' : 'green', 'Type' : 'a' },
'Element003' : { 'ID' : '21', 'Color' : 'blue', 'Type' : 'c' }
};
答案 0 :(得分:1)
按照以下示例
var obj = {
'Element001' : {
'ID' : '1',
'Color' : 'Red',
'Type' : 'X'
},
'Element002' : {
'ID' : '2',
'Color' : 'Green',
'Type' : 'X'
}
};
for(var x in obj){
if(obj[x].Color=="Green")
{
console.log("ID : " +obj[x].ID+" has color Green");
}
}

如果您不想这样,那么您可以使用此代码
var obj = {
'Element001' : { 'ID' : '1', 'Color' : 'red', 'Type' : 'b' },
'Element002' : { 'ID' : '2', 'Color' : 'red', 'Type' : 'a' },
'Element003' : { 'ID' : '21', 'Color' : 'red', 'Type' : 'c' }
};
var Keys=Object.keys(obj);
var _color=obj[Keys[0]].Color;
var _type=obj[Keys[0]].Type;
var _isSameColor=true;
var _isSameType=true;
for(var x=1;x<Keys.length;x++){
_isSameColor=_isSameColor&_color==obj[Keys[x]].Color;
_isSameType=_isSameType&_type==obj[Keys[x]].Type;
}
console.log(_isSameColor);
console.log(_isSameType);
if(_isSameColor||_isSameType){
alert("True");
}
else{
alert("False");
}
&#13;
答案 1 :(得分:0)
你应该使用方括号:[]
var obj = [
'Element_1' : {
'ID' : '1',
'Color' : 'Red',
'Type' : 'X'
},
'Element_2' : {
'ID' : '2',
'Color' : 'Green',
'Type' : 'X'
}
];
for(var i = 0 ; i++ ; i < obj.length){
if(obj[i].Color=="Green") {
console.log("ID : " +obj[i].ID+" has color Green");
}
}
&#13;