Показать сообщение отдельно
  #1 (permalink)  
Старый 06.03.2017, 11:14
Аспирант
Отправить личное сообщение для okuznetsov1 Посмотреть профиль Найти все сообщения от okuznetsov1
 
Регистрация: 02.11.2016
Сообщений: 65

Почему получаю ошибку "TypeError: dataCharts.push is not a function"?
Мне нужно сформировать из Массива содержащего js-объекты - новый js-объект c объектами, но в итоге получается сформировать
только массив с объектами:


Получилось сформировать так:
Array [ Object, Object ]

А нужно чтобы получился объект:
Object { cols: Array[4], rows: Array[1] }




Моя реализация:

var arr = [
	{Rank:1,Country:"Moscow",US$:"101994"},
	{Rank:2,Country:"Luxembourg",US$:"101"},
	{Rank:3,Country:"Monaco",US$:"1019"}
]

var dataCharts = [];
dataCharts.push({ cols: [{id: "year",label: "Год",type: "string"}]});
arr.forEach(function (element, index) {
        dataCharts[0].cols.push( {id: element.Rank,label: element.Country,type: "string"} );
});


dataCharts.push( { rows:[ { c: [ {v: "2015"} ] } ] } );
arr.forEach(function (element, index) {
        dataCharts[1].rows[0].c.push( {v: "101994", f: "101994"} );
});


console.log(dataCharts);




1) Если изменяю строку "var dataCharts = [];" на "var dataCharts = {};", получаю ошибку "TypeError: dataCharts.push is not a function"


2) Попытался конвертировать таким вот образом:

var obj = {};
dataCharts.forEach(function(element, index){
    obj[index] = element;
});
console.log(obj);



получаю вот такой такой вариант:
Object [Object, Object]

Последний раз редактировалось okuznetsov1, 06.03.2017 в 11:41.
Ответить с цитированием