javascript 从数字数组中提取数字而不将其返回到数组

daupos2t  于 2023-03-16  发布在  Java
关注(0)|答案(2)|浏览(110)

我想从数组中取出3个数字

let num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];

但是在绘制了它们中的每一个之后,应当从num数组中移除所选择的数字。
例如,如果选择0,则可以从以下公式中得出下两个公式

let num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];

等等。
有人知道如何以最有效的方式做到这一点吗?

mklgxw1f

mklgxw1f1#

Array.prototype.splice()正是这样做的。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];

console.log("arr: " + arr);

let removed = arr.splice(0,1);

console.log("removed: " + removed);
console.log("arr: " + arr);

removed = arr.splice(4,3);

console.log("removed: " + removed);
console.log("arr: " + arr);
v6ylcynt

v6ylcynt2#

如果需要从数组中移除多个索引,则需要按相反的数字顺序移除它们,以便移除每一项的操作不会干扰数组中该项之前的元素的位置。

let num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

let indices = [2,0,3]

let result =
  [...indices].sort((a,b)=>b-a)
  .reduce((a,c)=>(a.unshift(...num.splice(c,1)),a),[])

console.log(result)
console.log(num)

相关问题