Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否合并数组中的对象和对象?_Javascript_Jquery_List_Functional Programming - Fatal编程技术网

Javascript 是否合并数组中的对象和对象?

Javascript 是否合并数组中的对象和对象?,javascript,jquery,list,functional-programming,Javascript,Jquery,List,Functional Programming,原始数据是这样的 var d = {A1:{name:"A1",value:10}, A2:{name:"A2",value:8}} var l = [{name: "A1", 1min: 1, 2min:10}, {name: "A2", 1min:5, 2min:40}} 我需要做的是将d和l合并为同一个名称,结果如下: {A1: {name:"A1", value:10, 1min: 1, 2min:10}, A2: {name: "A2", value:8, 1min:5, 2mi

原始数据是这样的

var d = {A1:{name:"A1",value:10}, A2:{name:"A2",value:8}}
var l = [{name: "A1", 1min: 1, 2min:10}, {name: "A2", 1min:5, 2min:40}}
我需要做的是将
d
l
合并为同一个
名称
,结果如下:

{A1: {name:"A1", value:10, 1min: 1, 2min:10}, 
 A2: {name: "A2", value:8, 1min:5, 2min:40}}
我想
if
loop
可以帮我解决这个问题。但对于非常大的数据集,有没有更好、更简单的方法

这有用吗

for (var i=0; i < l.length; ++i) {
    var tmp = l[i];

    for (var key in tmp) {
        d[ tmp.name ][ key ] = tmp[key];
    }
}
for(变量i=0;i
属性和
名称是否总是在
d
中匹配?所以
d[key].name==key?@JonathanLonowski是的,他们总是匹配这个问题与d3无关。您可能正在使用此数组作为d3图形的节点列表,但这与您的问题无关。您实际上不需要删除该名称,因为它将被相同的值覆盖。