回答

收藏

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

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

我有一个数字数组,我正在使用它.push()向其中添加元素的方法。- y# `7 E+ W% q) j5 B6 z
从数组中删除特定元素有没有简单的方法?( z' u) ^9 {9 p: k7 \
我在寻找类似的东西:
5 H* F& M( k! d# u: t
    array.remove(number);) O/ c8 J7 g+ W% ?
我必须使用核心JavaScript。框架不允许使用。
, X7 \: {* g' O! g                                                               
. _/ P. g/ |# G    解决方案:                                                                , S* q( B* p( {4 v7 X
                                                                使用 查找index要删除的数组元素indexOf,然后用 删除索引splice。
1 W2 a' W% }: Lsplice() 通过删除现有元素和/或添加新元素来改变数组的内容。
- _  X% E9 c$ J  Z* p, \7 H! a; @) q
    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);
    5 B7 F+ J! k+ n: p7 e
的第二个参数splice要删除的元素数。请注意,splice修改数组并返回包含删除元素的新数组。6 O7 y1 X5 A2 p0 X6 S
为了完整起见,这是函数。第一个函数只删除一个匹配项(即删除5)from第一个匹配项[2、5、9、1、5、8、5]),第二个函数删除所有匹配项:
0 T8 h8 L& R; W3 W
    1 ]. j5 g! B$ q! d4 y* g# ^! O$ w
  • 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;}
    + W: ^- M9 c/ h  ~- V2 E
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则