Как вставить массив объектов в другой массив? - PullRequest
0 голосов
/ 13 июня 2018

Данные, которые я получаю от Api, представляются в виде массива следующим образом:

var arrayX = [{key: "GET", doc_count: 12},
{key: "POST", doc_count: 381}]

Я хочу показать значения этого ключа 'key' и 'doc_cont' на графике.И формат диаграммы следующий:

" ....
data: [{value: 'Doc_count' information of 'POST' key information will come in this field, name: 'POST'},
       {value: put, name: 'PUT'},
       {value: get, name: 'GET'}]
..."

Когда я хочу присвоить значение 'doc_count' в 'arrayX', возвращается 'undefined'.

for (var i = 0; i <= arrayX.length; i++) {
            if (arrayX[i].key == 'POST') {
                var post = arrayX[i].doc_count;
            }
            else if (arrayX[i].key == 'PUT') {
                var put = arrayX[i].doc_count;
            }
            else if (arrayX[i].key == 'GET') {
                var get = arrayX[i].doc_count;
            }
}

Как я могу исправитьэта ситуация?Я надеюсь, что мой вопрос ясен.

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Насколько я понимаю, вы хотите преобразовать массив следующей структуры:

[{key: "GET", doc_count: 12}, {key: "POST", doc_count: 381}]

в:

[{name: "GET", value: 12}, {name: "POST", value: 381}]

Для этой цели Array.prototype.map() может быть более описательным способомидти об этом.Из официальных документов :

Метод map () создает новый массив с результатами вызова предоставленной функции для каждого элемента в вызывающем массиве.

var arrayX = [{
  key: "GET",
  doc_count: 12
}, {
  key: "POST",
  doc_count: 381
}]

var chartData = arrayX.map((item) => {
  return {
    name: item.key,
    value: item.doc_count
  }
});

console.log(chartData)
console.log(arrayX)
0 голосов
/ 13 июня 2018

Вы были близки, единственная проблема здесь - это состояние вашего цикла.

измените это:

for (var i = 0; i <= arrayX.length; i++)

На это:

for (var i = 0; i < arrayX.length; i++)

Я изменил <= на <.

Если вы используете <=, вы получите индексы 0,1 и 2, а у вас нетиндекс 2 в arrayX вы получите исключение (индекс массива начинается с 0).

Вы можете прочитать больше в индекс массива

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