У меня есть пустой массив, в котором я хочу добавить определенные элементы в определенную позицию, которые поступают из веб-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-й позиции синимически.
У меня есть массив из 12 индексов, в котором я получаю значения для разных позиций, которые я должен динамически вставлять, иначе оставшиеся индексы будут равны нулю, поэтому мне нужна эта функциональность.
Используйте 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)
в чем на самом деле ваша проблема, заполнить массив, часть сплайсинга или изменяющуюся длину сплайсингом?