回答

收藏

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

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

我有一个数字数组,我正在使用它.push()向其中添加元素的方法。
4 ^" U. Z) p. w从数组中删除特定元素有没有简单的方法?
& ?5 h8 v# d1 S9 s) z/ ]6 z5 m6 y$ A我在寻找类似的东西:# N- I5 l( g8 m# T5 D/ J
    array.remove(number);
    7 a/ O! w- c" X) e- N; ~" k* f' m
我必须使用核心JavaScript。框架不允许使用。
; X6 S0 \7 L# g, q1 H1 i# y                                                               
6 e# T5 i5 S( p# d- M% o0 ]    解决方案:                                                                * E5 ]# `! h: ]3 E$ ?
                                                                使用 查找index要删除的数组元素indexOf,然后用 删除索引splice。
) e' w. K  ^6 w$ g  J1 k2 @splice() 通过删除现有元素和/或添加新元素来改变数组的内容。
" f6 d* g# w' r- 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); + D3 B' v( n7 y+ g) K+ m
的第二个参数splice要删除的元素数。请注意,splice修改数组并返回包含删除元素的新数组。
9 Y# s3 w+ s/ r! @, j0 y" o5 ^: m为了完整起见,这是函数。第一个函数只删除一个匹配项(即删除5)from第一个匹配项[2、5、9、1、5、8、5]),第二个函数删除所有匹配项:
+ V: w6 p: \& L) j& ?3 Q$ x1 C, ?

    # b. Q: U/ u% z9 F
  • 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;}
    # e3 u' I* A% D4 `, y& s4 W
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则