Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.02.2019, 18:34
Аспирант
Отправить личное сообщение для gsdev99 Посмотреть профиль Найти все сообщения от gsdev99
 
Регистрация: 03.02.2019
Сообщений: 72

Как правильно заполнить массив данными?
Здравствуйте. Подскажите, пожалуйста, как правильно решить следующую задачу. У меня есть данные.
const arr = [
  [{id: 1, value: 'item 1'}, {id: 2, value: 'item 2'}, {id: 3, value: 'item 3'}, {id: 4, value: 'item 4'}],
  [{id: 1, value: 'item 1'}, {id: 2, value: 'item 2'}],
  [],
  [{id: 1, value: 'item 1'}, {id: 2, value: 'item 2'}, {id: 3, value: 'item 3'}]
];

Мне необходимо получить следующую структуру. Т.е. заполнить массивы данными длинной по самому большому, свойство value: '-' записать указанным символом.
const arrM = [
  [{id: 1, value: 'item 1'}, {id: 2, value: 'item 3'}, {id: 3, value: 'item 3'}, {id: 4, value: 'item 4'}],
  [{id: 1, value: 'item 1'}, {id: 2, value: 'item 2'}, {id: 3, value: '-'}, {id: 4, value: '-'}],
  [{id: 1, value: '-'}, {id: 2, value: '-'}, {id: 3, value: '-'}, {id: 4, value: '-'}],
  [{id: 1, value: 'item 1'}, {id: 2, value: 'item 3'}, {id: 3, value: 'item 3'}, {id: 4, value: '-'}]
];
Ответить с цитированием
  #2 (permalink)  
Старый 19.02.2019, 19:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

gsdev99,
const arr = [
    [{id: 1, value: 'item 1'}, {id: 2, value: 'item 2'}, {id: 3, value: 'item 3'}, {id: 4, value: 'item 4'}],
    [{id: 1, value: 'item 1'}, {id: 2, value: 'item 2'}],
    [],
    [{id: 1, value: 'item 1'}, {id: 2, value: 'item 2'}, {id: 3, value: 'item 3'}]
];
const length = arr.reduce((l,{length})=>Math.max(l,length),0);
const arrNew = arr.map(a => Array.from({ length }, (v, k) => a[k] ? {...a[k]} : {id: ++k, value: '-'}));

console.log(arrNew)

Последний раз редактировалось рони, 19.02.2019 в 21:19.
Ответить с цитированием
  #3 (permalink)  
Старый 20.02.2019, 17:20
Аспирант
Отправить личное сообщение для gsdev99 Посмотреть профиль Найти все сообщения от gsdev99
 
Регистрация: 03.02.2019
Сообщений: 72

Большое спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно сделать поиск по массиву? gsdev99 Элементы интерфейса 4 12.02.2019 16:51
Как правильно добавить/удалить элемент в массив (из массива)? gsdev99 Элементы интерфейса 2 12.02.2019 12:15
Константный массив, как приватное поле класса AndreyMG Общие вопросы Javascript 0 13.05.2016 17:31
Json и как его правильно кушать (Help plz!) JohnyVoo Angular.js 2 04.05.2016 19:55
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14