我有两个数组(长度分别为thing1
和thing2
),它们的长度相同,但元素顺序不同。
可以基于与每个元素关联的目标名称和源名称将元素彼此匹配。
下面列出了每个示例的匹配元素:
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/