将项目添加到特定位置,否则在JavaScript中将数组中的值推为零

时间:2019-05-29 06:12:57

标签: javascript html arrays typescript ecmascript-6

我有一个空数组,我想在特定位置添加来自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;

My Code

现在我手动添加了零,我想将0最多添加到12个索引,并希望在第5个位置同步添加4。

5 个答案:

答案 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)

使用Array.fill

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)