回答

收藏

如何从数组中删除特定项目?

技术问答 技术问答 397 人阅读 | 0 人回复 | 2023-09-11

我有一个数字数组,我正在使用它.push()向其中添加元素的方法。  u2 G( F( B  {  Y. C  G5 G. V
从数组中删除特定元素有没有简单的方法?- D' l9 q* o  |$ |4 i1 d
我在寻找类似的东西:" m/ C/ X' e5 k" u  Y4 I6 f" N' X6 f
    array.remove(number);
    - n" R+ X7 ~" O5 U9 }' P
我必须使用核心JavaScript。框架不允许使用。
5 @: A4 q& C" i  h  D                                                               
1 U) G, p9 Y) ?" s    解决方案:                                                                + n; E; p1 j5 V) o5 C* a
                                                                使用 查找index要删除的数组元素indexOf,然后用 删除索引splice。
$ y" I3 G; s# a! {% ^splice() 通过删除现有元素和/或添加新元素来改变数组的内容。( J$ O9 [7 `0 s
    const array = [2,5,9];console.log(array);const index = array.indexOf(5);if (index > -1) {  array.splice(index,1);}// array = [2,9]console.log(array); ' G0 e: w" t* A/ u1 y+ V( u
的第二个参数splice要删除的元素数。请注意,splice修改数组并返回包含删除元素的新数组。+ O9 F6 x- j, D, t) A
为了完整起见,这是函数。第一个函数只删除一个匹配项(即删除5)from第一个匹配项[2、5、9、1、5、8、5]),第二个函数删除所有匹配项:
, b5 {" Y0 h# Z1 ?! M

    / ?; p" B1 n9 O6 x
  • function removeItemOnce(arr,value) {  var index = arr.indexOf(value);  if (index > -1) {     arr.splice(index,1);  }  return arr;}function removeItemAll(arr,value) {  var i = 0;  while (i 在 TypeScript 通过类型参数,这些函数可以保持类型安全:[code]function removeItem(arr: Array,value: T): Array {   const index = arr.indexOf(value);  if (index > -1) {     arr.splice(index,1);  }  return arr;}: _, T" T2 |5 I# i+ k1 k
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则