ARRAY1:
[{"Attribute1":"Apple","Attribute2":"jacob.nelson@cognizant.com"}]
数组2:
[{"Attribute1":"orange"}]`
我想将array1中“Attribute1”的值替换为array2中“Attribute1”的值。 我的输出应该像
[{"Attribute1":"orange","Attribute2":"jacob.nelson@cognizant.com"}]
我是javascript的新手。我被困在这里。非常感谢任何帮助。
答案 0 :(得分:0)
您向我们展示的是JSON对象表示。
在这种情况下,你有一个对象数组,所以如果你做下一个:
>>ar=[{"Attribute1":"Apple","Attribute2":"jacob.nelson@cognizant.com"}]
[Object]
这表示你在一个数组中有一个对象,然后你必须得到它:
>>obj=ar[0]
Object {Attribute1: "Apple", Attribute2: "jacob.nelson@cognizant.com"}
然后,如果您需要替换对象中的某些内容,则必须将它们视为OBJECTS!
>>ar2=[{"Attribute1":"orange"}]
>>obj2=ar2[0]
>>obj1.Attribute1=obj2.Attribute1
就是这样!
提示如果你有很多对象,请循环遍历它们:
>>objects_array=[
{"Attribute1":"Apple","Attribute2":"jacob.nelson@cognizant.com"},
{"Attribute1":"Cucumber","Attribute2":"asd@qwe.com"}
]
[Object, Object]
>>for obj in objects_array {
obj.Attribute1='Whatever'
}
答案 1 :(得分:0)
对于这个案例来说,这可能有点过头了,不过这是:
// adds Object.extend if it does not already exist
if (typeof Object.extend !== 'function') {
Object.extend = function (d /* DESTINATION */, s /* SOURCE */) {
for (var k in s) {
if (s.hasOwnProperty(k)) {
var v = s[k];
if (d.hasOwnProperty(k) && typeof d[k] === "object" && typeof v === "object") {
Object.extend(d[k], v);
} else {
d[k] = v;
}
}
}
return d;
};
}
您可以通过以下方式获得所需的结果:
var arr1 = [{"Attribute1":"Apple","Attribute2":"jacob.nelson@cognizant.com"}],
arr2 = [{"Attribute1":"orange"}];
arr1 = Object.extend(arr1, arr2);
>> [{"Attribute1":"orange","Attribute2":"jacob.nelson@cognizant.com"}]
但是就像评论中提到的那样;如果这是唯一的情况,请手动完成。