У меня есть динамический объект данных Json.
[{"stock1":"aaaa","stock2":"bbbb"},{"stock1":"aaaa","stock2":"bbbb"},{"stock1":"aaaa","stock2":"bbbb"}]
и мне нужно ввести некоторые данные.
"identifier" : "userid"
затем я пытаюсь написать такой код.
Data.push({"identifier" : "userid"});
и результат был
[{"stock1":"aaaa","stock2":"bbbb"},{"stock1":"aaaa","stock2":"bbbb"},{"stock1":"aaaa","stock2":"bbbb"},{"identifier" : "userid"}]
но моя цель
[{"stock1":"aaaa","stock2":"bbbb","identifier" : "userid"},{"stock1":"aaaa","stock2":"bbbb","identifier" : "userid"},{"stock1":"aaaa","stock2":"bbbb","identifier" : "userid"}]
как я могу поместить некоторые данные в специальный индекс в существующих данных json?
for(obj in Data){Data.obj.push()} ??



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Чтобы обновить / добавить к существующим объектам массива, вы можете сделать простой цикл для каждого.
Фрагмент стека
var array = [{"stock1":"aaaa","stock2":"bbbb"},{"stock1":"aaaa","stock2":"bbbb"},{"stock1":"aaaa","stock2":"bbbb"}]
array.forEach(function(item) {
item["identifier"] = "userid";
})
console.info(array)Использование функции reduce для добавления каждого элемента с новой парой ключ-значение
var arr = [{"stock1":"aaaa","stock2":"bbbb"},{"stock1":"aaaa","stock2":"bbbb"},{"stock1":"aaaa","stock2":"bbbb"}]
var result = arr.reduce((r,s) => {
r.push(Object.assign({}, s, {"identifier" : "userid"}));
return r;
} , []);
console.info(result);Я думаю, что map () идеально подходит для этого:
var arr = [
{"stock1":"aaaa","stock2":"bbbb"},
{"stock1":"aaaa","stock2":"bbbb"},
{"stock1":"aaaa","stock2":"bbbb"}]
arr.map(function(x){
x.identifier = "userid"
})
console.info(arr)Попробуй это. Используйте Object.keys, чтобы перебирать существующие данные массива и назначать новые данные каждому уровню с помощью Object.assign:
var Data = [{"stock1":"aaaa","stock2":"bbbb"},{"stock1":"aaaa","stock2":"bbbb"},{"stock1":"aaaa","stock2":"bbbb"}];
Data = Object.keys(Data).map(function (i) {
return Object.assign({}, Data[i], {identifier: 1});
});
console.info(Data);
Вот несколько документов, объясняющих использование Object.assign:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
вам нужно нажать на элемент массива, а не на сам массив: поэтому вам нужно выполнить цикл для этого JSONArray, а затем для каждого элемента вставить новые переменные, например:
for(int x-0; x<Data.length; x++){
Data[x].push({"identifier" : "userid"})
}
Скажем, изначально ваш массив - initArray. Вы можете сделать это с помощью карта или для каждого С forEach вы получите внести изменения в initArray, а с картой вы будете обрабатывать initArray, которая вернет новый массив.
Так,
initArray.forEach( function (element)
{
element["identifier"] = "userId"
})
var newArray = initArray.map(
function (element) {
element["identifier"] = "userId"
return element
})