Javascript在对象内部插入对象(每个索引已经有对象)对象数组

时间:2019-03-14 12:02:27

标签: javascript arrays json object

我有一个像[{0},{1},{2}..]这样的json响应,每个索引都包含对象数据。我也有一个像a{}这样的对象,它也包含对象数据。我想要的是在对象的“内部”(末尾)添加每个索引,例如[{0..a},{1..a},{2a}]

5 个答案:

答案 0 :(得分:0)

因此,假设您的json响应位于某个变量中(假设其名为jsonResponse),并且a是可以执行的对象:

jsonResponse.push(a)

这会将一个对象添加到jsonResponse数组的末尾。

这假设jsonResponse是一个数组,如果它是一个字符串,则可能必须执行以下操作:

let jsonResponse = JSON.parse(responsestring)

答案 1 :(得分:0)

据我了解,您想向JSON响应中的每个对象添加对象A?

如果是这样,请尝试:

var jsonResponse = [{a: 1}, {a: 1}, {a: 1}]
var objToAppend = {b:2}

for(var objectInJsonResponse of jsonResponse){
    objectInJsonResponse.appendedObject = objToAppend;
}

这将导致:

console.log(jsonResponse)
[{a:1,appendedObject:{b:2}},{a:1,appendedObject:{b:2}},{a:1,appendedObject:{b:2}}]

当然,您可以将appendedObject的名称更改为您想要的键名称。

答案 2 :(得分:0)

合并两个json对象:

function combineObj(ob1, ob2) {
    return Object.fromEntries(Object.entries(ob1).concat(Object.entries(ob2)));
}

var a = [{b:1},{q:3},{s:2}],
    b = {a:2};
var result = a.map(x=>combineObj(x,b));
console.log(result);

答案 3 :(得分:0)

使用 JSON.parse 解析json响应,然后对其进行迭代并将对象添加到每个对象中

var resp = '[{"data":"1"},{"data":"2"},{"data":"3"},{"data":"4"}]';
var arr = JSON.parse(resp);
console.log(arr);

var a = {
  data: 5
};

arr.forEach(function(element,i) {
    arr[i].a = a;
});
console.log(arr)

答案 4 :(得分:0)

您的问题并不十分清楚,但是听起来您想看一下array.map。

例如:

let arr = [{x:1,y:2},{x:3,y:4}];
const foo = arr.map(obj=>{obj.z=42; return obj})
console.log("GOT:", foo);