我有一个空数组,我想在特定位置添加来自Web api的特定项,并想使用javscript动态将零(0)添加到其余位置。 这是我的代码:-
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个索引,并希望在第5个位置同步添加4。
答案 0 :(得分:2)
使用map
:
let arraydata = Array(12).fill();
arraydata.splice(5, 0, 4);
arraydata = arraydata.map(e => e ? e : 0);
console.log(arraydata);
您还可以添加其他值-只需将它们放在fill
内即可:
let arraydata = Array(12).fill("Things");
arraydata.splice(5, 0, 4);
arraydata = arraydata.map(e => e ? e : 0);
console.log(arraydata);
答案 1 :(得分:2)
您可以fill()
0
let arraydata = Array(12).fill(0)
arraydata.splice(5, 0, 4)
console.log(arraydata)
答案 2 :(得分:1)
您可以只在所需的索引处分配值,而无需进行拼接,这会增加数组的长度。
let arraydata = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
arraydata[5] = 4;
console.log(...arraydata);
如果要保留拼接,可以通过分配所需的长度来保留长度。
let arraydata = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
arraydata.splice(5, 0, 4);
arraydata.length = 12;
console.log(...arraydata);
答案 3 :(得分:1)
let array = new Array(12).fill(0);
array.splice(5,0,4);
console.log(array);
如果您要更新索引而不是在特定索引处添加新值而不是拼接,则只需执行array[5] = 4
答案 4 :(得分:1)
您可以构建这样的通用函数
let desiredArr = (length, value, from, to)=>{
let arr = new Array(length).fill(0)
arr.splice(value, from, to)
return arr
}
console.log(desiredArr(12, 5, 0 ,4))
如果总是只有一个索引要更新,而您只需要这样做
let arr = new Array(12).fill(0)
arr[5] = 4
console.log(arr)