我有两个数组(长度分别为thing1thing2),它们的长度相同,但元素顺序不同。

可以基于与每个元素关联的目标名称和源名称将元素彼此匹配。

下面列出了每个示例的匹配元素:

thing1[0].target
Object {
  name: "Benthopelagics, large", parent: Object, imports: Array[7], TL: 3.717611213, B: 0.2…
}

thing1[0].source
Object {
  name: "Outside", parent: Object, imports: Array[4], TL: 5.149219037, B: 0…
}

thing2[216]
Object {source: "Benthopelagics, large", target: "Outside", value: 0.05800000596}


我想将“值”字段从thing2复制到thing1,但是作为JavaScript的新手,我一直无法弄清楚如何进行源名称和目标名称的匹配。

有人可以给我示例所需的语法吗?

最佳答案

遍历thing2。对于thing2的每次迭代,遍历thing1并搜索匹配的对象属性。

Demo


for(var i = 0, j = thing2.length; i < j; i++) {
    for(var k = 0, l = thing1.length; k < l; k++) {
        if( thing1[k].source.name == thing2[i].source &&
            thing1[k].target.name == thing2[i].target) {
            thing1[k].value = thing2[i].value;
        }
    }
}

关于javascript - 将对象属性从一个数组映射到另一个数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30607823/

10-11 02:22