javascript双循环`for`两个数组

时间:2017-05-08 21:16:15

标签: javascript

这是我目前的代码:

pathName + '/' + file

现在我手动定义let total = 4; let total_attr = 2; for (let i = 0; i < total; ++i) { let name = result.Item[i].attr[0].Name[0], value = result.Item[i].attr[0].Value[0] let name2 = result.Item[i].attr[1].Name[0], value2 = result.Item[i].attr[1].Value[0] let return_value = [{ [name]: value, [name2]: value2 }]; result.push( function() {return {return_value};} ); } ,我想让它像.attr[0]这样循环,并且无法弄清楚?感谢。

我的结果:

.attr[k]
抱歉这令人困惑。

2 个答案:

答案 0 :(得分:0)

我在这里做了几个假设,但我想这可能与你之后的情况很接近:

// results array
let result = [];

// for each item in results.Item[] array
for (let i = 0; i < result.Item.length; i++) {
    let item = result.Item[i];

    // for each item results.Item[i].attr[] array
    for (let j = 0; j < item.attr.length; j++) {
        let attr = item.attr[j];

        result.push({
            // NB: are these definitely array references?

            // if not, just use:
            // name: attr.Name,
            // value: attr.Value

            name: attr.Name[0],
            value: attr.Value[0]            
        });
    }

}

答案 1 :(得分:0)

咦?一个猜测。第一个循环遍历初始数组。第二个循环遍历每个对象内的辅助数组。辅助循环当前使用名称数组作为长度。

var return_value;
var array = [{
    name: ['jack', 'david'],
    value: [1,2]
  },
  {
    name: ['leo', 'adam'],
    value: [1,2]
  }
]

for(var i = 0; i < array.length; i++) {
     for(var j = 0; j < array[i].name.length; j++ ) {
        return_value.push({
            name: array[i].name[j];
            value: array[i].value[j]
        })
     }
}