Добавьте элемент в определенную позицию, иначе нажмите ноль в массиве в javascript

У меня есть пустой массив, в котором я хочу добавить определенные элементы в определенную позицию, которые поступают из веб-API, и хочу динамически добавить ноль (0) к оставшимся позициям с помощью javascript. Вот мой код: -

let arraydata = [0, 0, 0, 0, 0,0,0,0,0,0,0,0]
arraydata.splice(5, 0, 4)
document.querySelector("#app").innerHTML = arraydata;

Мой код

Прямо сейчас я добавил ноль вручную, я хочу добавить от 0 до 12 индексов и хочу добавить 4 на 5-й позиции синимически.

в чем на самом деле ваша проблема, заполнить массив, часть сплайсинга или изменяющуюся длину сплайсингом?

Nina Scholz 29.05.2019 08:22

У меня есть массив из 12 индексов, в котором я получаю значения для разных позиций, которые я должен динамически вставлять, иначе оставшиеся индексы будут равны нулю, поэтому мне нужна эта функциональность.

vedankita kumbhar 29.05.2019 08:31
Поведение ключевого слова "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) для оценки ваших знаний,...
1
2
51
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Используйте map:

let arraydata = Array(12).fill();
arraydata.splice(5, 0, 4);
arraydata = arraydata.map(e => e ? e : 0);
console.info(arraydata);

Вы также можете добавить другие значения — просто поместите их в fill:

let arraydata = Array(12).fill("Things");
arraydata.splice(5, 0, 4);
arraydata = arraydata.map(e => e ? e : 0);
console.info(arraydata);

Вы можете просто присвоить значение нужному индексу без объединения, что увеличивает длину массива.

let arraydata = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
arraydata[5] = 4;

console.info(...arraydata);

Если вы хотите сохранить соединение, вы можете сохранить длину, назначив желаемую длину.

let arraydata = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
arraydata.splice(5, 0, 4);
arraydata.length = 12;

console.info(...arraydata);

Использовать Заполнить массив

let array = new Array(12).fill(0);
array.splice(5,0,4);
console.info(array);

Если вы хотите обновить индекс, а не добавлять новое значение в определенный индекс, а не соединять его, вы должны просто сделать array[5] = 4

Вы можете fill() массив с 0

let arraydata = Array(12).fill(0)
arraydata.splice(5, 0, 4)
console.info(arraydata)

Вы можете создать общую функцию, подобную этой

let desiredArr = (length, value, from, to)=>{
  let arr = new Array(length).fill(0)
  arr.splice(value, from, to)
  return arr
}

console.info(desiredArr(12, 5, 0 ,4))

Если всегда есть только один индекс, который вы хотите обновить, вы можете просто сделать это

let arr = new Array(12).fill(0)
arr[5] = 4

console.info(arr)

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