Сборка массива из объектов
Коллеги, доброго времени суток,
Вопрос такой, есть массив, внутри которого массивы с данными, например: let arr = [[1,2,3,4,5,6], [4,5,6,2,1,5]]; // ... до бесконечности мне нужно собрать массив: let obj = { // это пример - шаблон, элемента массива summ: 0, age: 0, o: 0, name: 0, stat: 0, door: 0 }; // далее, нужно собрать такой массив let result = [ { summ: 1, age: 2, o: 3, name: 4, stat: 5, door: 6 }, { summ: 4, age: 5, o: 6, name: 2, stat: 1, door: 5 } ]; Нужно собрать массив result, который будет состоять из объектов, типа obj, свойства которого будут заполняться значения элементов массива arr. Прошу помощи, заранее благодарю |
arr.map(([summ, age, o, name, stat, door]) => ({summ, age, o, name, stat, door})) |
destus, спасибо)))
Только, тогда уж подскажите еще, у меня в функцию передается obj и изначально его свойства не известны. Как через цикл собрать массив???? build(arr, { summ : false, age : false, o : false, name : false, stat : false, door : false }); build(inputArr, obj) { let result = []; result = result.map(([summ, age, o, name, stat, door]) => ({summ, age, o, name, stat, door})); } |
попробуй так
const build = (arr, template) => { const keys = Object.keys(template); return arr.map(data => { return keys.reduce((acc, key, i) => { return { ...acc, [key]: data[i] } }, {}) }) } let arr = [ [1, 2, 3, 4, 5, 6], [4, 5, 6, 2, 1, 5] ]; let obj = { summ: false, age: false, o: false, name: false, stat: false, door: false } const result = build(arr, obj); console.log(result); |
destus, огонь, спасибо))))
|
мои 50 копеек %)
let arr = [[1, 2, 3, 4, 5, 6], [4, 5, 6, 2, 1, 8]] let obj = { summ: false, age: false, o: false, name: false, stat: false, door: false } build = (arr, obj) => { let keys = Object.keys(obj) return arr.map(row => row.reduce((p, c, i) => (p[keys[i]] = c) && p, {})) } console.log(build(arr, obj)) |
Часовой пояс GMT +3, время: 01:03. |