Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.01.2019, 06:50
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

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

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.
Прошу помощи, заранее благодарю
Ответить с цитированием
  #2 (permalink)  
Старый 14.01.2019, 07:00
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

arr.map(([summ, age, o, name, stat, door]) => ({summ, age, o, name, stat, door}))
Ответить с цитированием
  #3 (permalink)  
Старый 14.01.2019, 07:14
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

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}));

	}

Последний раз редактировалось Роман Андреевич, 14.01.2019 в 07:20.
Ответить с цитированием
  #4 (permalink)  
Старый 14.01.2019, 07:44
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

попробуй так
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);
Ответить с цитированием
  #5 (permalink)  
Старый 14.01.2019, 08:54
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

destus, огонь, спасибо))))
Ответить с цитированием
  #6 (permalink)  
Старый 14.01.2019, 12:36
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

мои 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))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка из массива объектов при помощи filter. AndriiS Общие вопросы Javascript 20 06.01.2021 14:57
Событие для массива объектов Самовар Общие вопросы Javascript 8 10.08.2018 14:26
Удаление нескольких объектов из массива konstantin-921 Events/DOM/Window 4 10.03.2018 18:16
Конструктор массива объектов и работа с ними через localStorage pepel266 Общие вопросы Javascript 16 04.11.2015 18:30
Вызов свойств объектов из массива или объекта с параметрами Sanu0074 jQuery 4 22.05.2015 10:18