gpt4 book ai didi

javascript - 如何使用 JavaScript 合并对象?

转载 作者:行者123 更新时间:2023-11-30 16:59:11 25 4
gpt4 key购买 nike

我有以下内容

$scope.Marketing = [{
'ProductId':1,
'ProductName':'Product 1',
'ProductDescription':'Product Description 1'
},
{
'ProductId':2,
'ProductName':'Product 2',
'ProductDescription':'Product Description 2'
}];

$scope.Finance=[{
'ProductId':1,
'Price':'$200.00'
},
{
'ProductId':2,
'Price':'$100.00'
}];

$scope.Inventory=[{
'ProductId':1,
'StockinHand:':26
},
{
'ProductId':2,
'StockinHand':40
}];

我想要的输出是

enter image description here

我的合并功能在这里

$scope.tempresult=merge($scope.Marketing,$scope.Finance);  
$scope.result=merge($scope.tempresult,$scope.Inventory);

function merge(obj1,obj2){ // Our merge function
var result = {}; // return result
for(var i in obj1){ // for every property in obj1
if((i in obj2) && (typeof obj1[i] === "object") && (i !== null)){
result[i] = merge(obj1[i],obj2[i]); // if it's an object, merge
}else{
result[i] = obj1[i]; // add it to result
}
}
for(i in obj2){ // add the remaining properties from object 2
if(i in result){ //conflict
continue;
}
result[i] = obj2[i];
}

return result;

但是输出是

enter image description here

第一个 Stock In Hand 的值缺失。

我犯了什么错误?

编辑

enter image description here

enter image description here

最佳答案

你可以使用 Jquery.extend 属性,看看 plnkr 代码

$scope.result=merge($scope.Marketing, $scope.Finance,$scope.Inventory);

function merge(obj1,obj2, obj3){
return $.extend(true, obj1,obj2,obj3)
}
};

http://plnkr.co/edit/gKQ9bc?p=preview

关于javascript - 如何使用 JavaScript 合并对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29181857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com