Как использовать пустые массивы для заполнения количества

Длина массива фиксирована и равна 5.

Я хочу заполнить длину пустым массивом, если длина меньше 5, и расположить ее по порядку.

Как это сделать?

test = [
    ["qwe","0"],
    ["ewq","2"],
    ["aaa","4"],
]

становится

test = [
    ["qwe","0"],
    ["",""],
    ["ewq","2"],
    ["",""],
    ["aaa","4"],
    ["",""],
]

пожалуйста, добавьте approch.why должны быть заполнены части между ними. что произойдет, если у вас есть другое требование, например, трое хотят четырех?

Nina Scholz 19.02.2019 11:17

Вы упомянули длину 5 и у вас есть 6 элементов?? Пожалуйста, предоставьте больше информации

iamrajshah 19.02.2019 11:18
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
2
62
1

Ответы 1

Алгоритм

  1. Преобразуйте свой array в map со вторым элементом массива в качестве его ключей. Вы можете использовать Массив.уменьшить для этого шага
  2. Создайте пустой массив размером, равным size + 1
  3. Сопоставьте каждый элемент в вашем массиве, используя Array.map . Если его индекс есть на карте, воссоздайте элемент в предыдущем массиве. В противном случае заполните его слотом "пустой"["", ""]
  4. Вызовите функцию, описанную в 3, с помощью size и map, описанных в 1.

Выполнение

// Convert your array to a map
const fillArray = (m, size) => Array(size + 1).fill(0).map((x, idx) => `${idx}` in m ? [m[idx], `${idx}`] : ['', '']);

// Fill the array "in between"
const getArrayMap = arr => arr.reduce((acc, curr) => {
  acc[curr[1]] = curr[0];
  return acc;
}, {});

// Data
const size = 5;
const test = [
  ["qwe", "0"],
  ["ewq", "2"],
  ["aaa", "4"],
];

const filled = fillArray(getArrayMap(test), size);
console.info(filled);

Примечания

  • Вы можете оптимизировать это, запустив проверку перед выполнением чего-либо, чтобы проверить, если size - 1 < test.length. Если это так, вам не нужно запускать какую-либо функцию
  • Вы можете сделать это более надежным, отфильтровав массив test и удалив все элементы, которые не следуют за "стандартная форма". Например с test.filter(x => x.length === 2)

Другие вопросы по теме