Javascript Вставка объекта "внутри" (у каждого индекса уже есть объект) в массив объектов - PullRequest
1 голос
/ 14 марта 2019

У меня есть json-ответ типа [{0},{1},{2}..], и каждый индекс содержит данные объекта.У меня также есть объект типа a{}, который также содержит данные объекта. Я хочу добавить объект «внутри» (в конце) каждого индекса, например [{0..a},{1..a},{2a}].

Ответы [ 5 ]

0 голосов
/ 14 марта 2019

Ваш вопрос не совсем понятен, но звучит так, будто вы хотите посмотреть на 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);
0 голосов
/ 14 марта 2019

Разобрать ответ json, используя JSON.parse , затем выполнить итерацию по нему и добавить объект внутри каждого объекта

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)
0 голосов
/ 14 марта 2019

Насколько я понимаю, вы хотите добавить объект A к каждому объекту в своем ответе JSON?

Если так, попробуйте:

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 на то, что вы хотите, чтобы ключ был.

0 голосов
/ 14 марта 2019

для объединения двух объектов 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);
0 голосов
/ 14 марта 2019

Таким образом, предполагая, что ваш ответ json находится в некоторой переменной (скажем, она называется jsonResponse) и a - это объект, который вы можете сделать:

jsonResponse.push(a)

, который добавит объект a в конец массива jsonResponse.

Предполагается, что jsonResponse является массивом, если это строка, вам может потребоваться сделать что-то вроде:

let jsonResponse = JSON.parse(responsestring)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...