Как преобразовать объект массива

199
29 января 2020, 07:30

Необходимо изменить структуру из такой:

const data = [
    { name: "Product 0", feature1: 30, feature2: 51.6, year: 2015 },
    { name: "Product 1", feature1: 167.5, feature2: 59, year: 2016 },
    { name: "Product 2", feature1: 159.5, feature2: 49.2, year: 2015 }
];

в такую:

const newData = [
    { name: "Product 0", coordinates: [[30, 51.6]], year: 2015 },
    { name: "Product 1", coordinates: [[167.5, 59]], year: 2015 },
    { name: "Product 2", coordinates: [[159.5, 49.2]], year: 2015 }
];

Чтобы потом добавить в Highcharts. Как это сделать?

Answer 1

Как вариант, через цикл создавать объекты и кругами пихать их в новый пустой массив:

const data = [
    { name: "Product 0", feature1: 30, feature2: 51.6, year: 2015 },
    { name: "Product 1", feature1: 167.5, feature2: 59, year: 2016 },
    { name: "Product 2", feature1: 159.5, feature2: 49.2, year: 2015 }
];
let NewData = [];
for ( let i = 0; i < data.length; i++ ){
  let bubu = {};
  bubu.name = data[i].name;  
  bubu.coordinates = [[data[i].feature1,data[i].feature2]];
  bubu.year = data[i].year;
  NewData.push(bubu);
}

JsFiddle demo

Answer 2

const data = [ 
  { name: "Product 0", feature1: 30, feature2: 51.6, year: 2015 }, 
  { name: "Product 1", feature1: 167.5, feature2: 59, year: 2016 }, 
  { name: "Product 2", feature1: 159.5, feature2: 49.2, year: 2015 } 
]; 
 
const newData = data.map( 
  ({ name, feature1, feature2, year }) => ({ name, coordinates: [[feature1, feature2]], year }) 
);  
 
console.log(newData.map(o => JSON.stringify(o).replace(/,/g, ', ')).join('\n')); 


const data = [ 
  { name: "Product 0", feature1: 30, feature2: 51.6, year: 2015 }, 
  { name: "Product 1", feature1: 167.5, feature2: 59, feature3: 12.3, feature4: 45.6, year: 2016 }, 
  { name: "Product 2", feature1: 159.5, feature2: 49.2, year: 2015 } 
]; 
 
const newData = data.map( 
  ({ name, year, ...rest }) => ({ name, coordinates: [Object.values(rest)], year }) 
);  
 
console.log(newData.map(o => JSON.stringify(o).replace(/,/g, ', ')).join('\n')); 

READ ALSO
Ошибка при подключении к MySQL 8.0.15-a2

Ошибка при подключении к MySQL 8.0.15-a2

У меня возникла проблема с MySQL я недавно ее поставил настроил и вот тут уже проблема с коннектором Внимание Phpmyadmin работает без проблем а коннект...

209
Mysql выборка иерархии

Mysql выборка иерархии

не могли бы вы помочь написать рекурсивный запрос на выбор данных из одной единственной таблицы ? (Без использования PHP)

231
Анимация SVG иконки раскрытия аккордеона

Анимация SVG иконки раскрытия аккордеона

Есть SVG иконка, в коде она размещена инлайномНужно чтобы при раскрытии аккордеона иконка морфировала из показателя вниз в показатель вверх,...

221
Плавный переход страницы

Плавный переход страницы

Вот есть такой JS код:

220