0

数组1:

 [{"Attribute1":"Apple","Attribute2":"jacob.nelson@cognizant.com"}]

数组2:

[{"Attribute1":"orange"}]`

我想将array1中“Attribute1”的值替换为array2中“Attribute1”的值。我的输出应该是

[{"Attribute1":"orange","Attribute2":"jacob.nelson@cognizant.com"}]

我是 javascript 的新手。我被困在这里。任何帮助将不胜感激。

4

2 回答 2

0

对于这种情况,这可能有点过分了,但是这里是:

使用Object.extend

// 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"}]

但就像评论中提到的那样;如果这是唯一的情况,请手动执行此操作。

于 2013-11-12T16:00:35.900 回答
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'
}
于 2013-11-12T15:48:44.923 回答