如何比较和计算多个对象的实例';javascript中数组中的属性值?

如何比较和计算多个对象的实例';javascript中数组中的属性值?,javascript,arrays,loops,object,Javascript,Arrays,Loops,Object,我一直在尝试计算数组中几个对象的属性值实例。我正在寻找一种有效迭代这些值的方法。 数组的结构可能如下所示: var arr=[{1:["option1","option2"],2:["option2"],3:["option1"]},{1:["option2","option1"],2:["option1"],3:["option1"]}] 数组可能包含未知数量的对象。每个对象属性可能包含放入数组的未知数量的值。每个对象都有相同的属性,所以我只是尝试将所有对象属性与第一个对象合并。我相信,它看

我一直在尝试计算数组中几个对象的属性值实例。我正在寻找一种有效迭代这些值的方法。 数组的结构可能如下所示:

var arr=[{1:["option1","option2"],2:["option2"],3:["option1"]},{1:["option2","option1"],2:["option1"],3:["option1"]}]
数组可能包含未知数量的对象。每个对象属性可能包含放入数组的未知数量的值。每个对象都有相同的属性,所以我只是尝试将所有对象属性与第一个对象合并。我相信,它看起来很笨拙,可读性也很差,但这是迄今为止我找到的唯一方法。这几乎奏效,但我相信这种行为可能是不可预测的

for(var firstobj=0,val=0,i=1,prop=1;arr.length>i;prop++,val++)
{
 if(prop>Object.getOwnPropertyNames(arr[i]).length)
{
    i++;
    prop=1;
}
else if(prop<Object.getOwnPropertyNames(arr[i]).length)
{
    i+0;
}
if(arr[i][prop].length<=val)
 {
  val=0;  
}
arr[firstobj][prop].push(arr[i][prop][val]);
}
for(var firstobj=0,val=0,i=1,prop=1;arr.length>i;prop++,val++)
{
if(prop>Object.getOwnPropertyNames(arr[i]).length)
{
i++;
prop=1;
}

else if(prop使用嵌套循环处理数组或对象的每个级别

for (var i = 0; i < arr.length; i++) {
    var obj = arr[i];
    for (var key in obj) {
        if (obj.hasOwnProperty(key)) { // skip properties inherited from prototype
            var arr2 = obj[key];
            for (var j = 0; j < arr2.length; j++) {
                // Do something with arr2[j]
            }
        }
    }
}
for(变量i=0;i
嵌套循环不是比你重置索引的方法更简单吗?嗯,作为js的新手,我没有考虑过这种方法。你能根据我的示例为我提供一些说明吗?这不是js特有的,而是你如何用任何语言处理多维或嵌套的数据结构。谢谢,这真的很有帮助!)这更容易理解