将javascript对象键值推送到javascript对象键数组

Pushing javascript object key value to javascript object key arrays

本文关键字:javascript 对象 数组 键值      更新时间:2023-09-26

我遇到了一个愚蠢的问题,可能是由于我的语法。如何将对象arr[j]中的所有键动态推送到对象arr[i]中?

var arr = [{key:["data1","data2"]},{key:"data"}];
var i = 0;
var j = 1;
for(var key in arr[i]){
     arr[i][key].push(arr[j][key]);
     // arr[i][key] is an array, arr[j[key;] is a string
}

而不是残酷地把所有东西都打出来(这对我来说很有效):

arr[i][key1].push(arr[j].key1);
arr[i][key2].push(arr[j].key2);

CCD_ 3将以数组的形式包含其先前的信息和对象2的信息。基本上,我是连接JavaScript对象。最后,arr[i]应该看起来像:

key1:[arr[i].key1Value,arr[j].key1Value]
key2:[arr[i].key2Value,arr[j].key2Value]

提前感谢!!

相对简单:

var arr = [{key:["data1","data2"]},{key:"data"}],
    i = 0,
    j = 1,
    target = arr[i],
    source = arr[j];
target.key.push(source.key);

如果源有多个密钥,请尝试以下操作:

var arr = [{key:["data1","data2"]},{key:"data", key1: "data1", key2: "data2"}],
    i = 0,
    j = 1,
    target = arr[i],
    source = arr[j];
for(var key in source){           // Loop over the keys in the source
    target.key.push(source[key]); // And add them to the target's `key` array.
}

结果:

[
    { key: ["data1", "data2", "data", "data1", "data2"]},
    { key: "data", key1: "data1", key2: "data2"}
]

我不能100%确定我是否理解你想要实现的目标,但这可能会有所帮助:

var arr = [{key:["data1","data2"]},{key:"data"}];
var target = [];
arr.forEach( function(value,index){
   target['key' + index] = value;
});

输出:

target.key0 : { key: [ 'data1' 'data2' ]}
target.key1 : { key: [ 'data' ]}