Добавление нового элемента данных массива в JSON - PullRequest
0 голосов
/ 12 мая 2018

У меня есть объект динамических данных 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?

Ответы [ 6 ]

0 голосов
/ 12 мая 2018

Допустим, изначально ваш массив initArray .Вы можете сделать это с помощью map или forEach С помощью forEach вы будете вносить изменения в initArray , а с картой вы будете обрабатывать initArray , который будетвернуть новый массив.

Итак,

initArray.forEach( function (element)

 { 

element["identifier"] = "userId" 

})

var  newArray = initArray.map(

           function (element) {  

               element["identifier"] = "userId"  

                return element 

            })
0 голосов
/ 12 мая 2018

вам нужно нажать на элемент массива, а не на сам массив: поэтому вам нужно выполнить цикл для этого JSONArray, а затем для каждого элемента выдвинуть новые переменные, например:

    for(int x-0; x<Data.length; x++){
       Data[x].push({"identifier" : "userid"})
    }
0 голосов
/ 12 мая 2018

Попробуй это.Используйте 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.log(Data);

. Вот несколько документов, объясняющих использование Object.assign: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

0 голосов
/ 12 мая 2018

Я думаю, что map () идеально подходит для этого:

var arr = [
{"stock1":"aaaa","stock2":"bbbb"},
{"stock1":"aaaa","stock2":"bbbb"},
{"stock1":"aaaa","stock2":"bbbb"}]

arr.map(function(x){
x.identifier = "userid"
})

console.log(arr)
0 голосов
/ 12 мая 2018

Использование функции 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.log(result);
0 голосов
/ 12 мая 2018

Чтобы обновить / добавить в существующие объекты массива, вы можете сделать простой цикл forEach .

Фрагмент стека

var array = [{"stock1":"aaaa","stock2":"bbbb"},{"stock1":"aaaa","stock2":"bbbb"},{"stock1":"aaaa","stock2":"bbbb"}]

array.forEach(function(item) {
  item["identifier"] = "userid";
})

console.log(array)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...