Podane tabliczki Nazwa ['a','b','c'] Dane [1 , 2 , 3]

Chcę wynik [{name: 'a', data: 1}, {name: 'b', data: 2}, {name: 'c', data: 3}],

Mógłbym zrobić

 let combinedData = [];
 for (let i = 0; i < data.length; i++) {
     combinedData.push({name: name[i], data: data[i]});
 }

Ale szukam eleganckiego sposobu, strzał. (Korzystanie z zewnętrznego lib jest dopuszczalny E.G. Lodash)

0
barha 26 czerwiec 2017, 01:16

3 odpowiedzi

Najlepsza odpowiedź

Proste rozwiązanie ES6 może być:

let arr1 = ...;
let arr2 = ...;

let data = arr1.map((item, i) => ({a: item, b: arr2[i]}));
1
Shane 25 czerwiec 2017, 22:30
let combinedData ={};
  let name = ['a','b','c'];
    let data = [1 , 2 , 3];
 for (let i = 0; i < data.length; i++) {
     combinedData[name[i]]=data[i];
 }
 console.log(combinedData);
1
Osama 25 czerwiec 2017, 22:35

Możesz użyć array.map :

let name = ['a','b','c'];
let data = [1,2,3];
let combined = name.map((v, i) => ({name: v, data: data[i]}));
console.log(combined);
2
rgthree 25 czerwiec 2017, 22:23