回答

收藏

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

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

我有一个数字数组,我正在使用它.push()向其中添加元素的方法。) ]( ]7 {' {- c* X9 c$ N
从数组中删除特定元素有没有简单的方法?
; h. E! U5 i8 L0 J1 C6 ^我在寻找类似的东西:
; `( l) n6 E0 O% d2 P7 M5 F1 I/ b
    array.remove(number);
    + \! m" e$ G/ W( W# t0 j, K
我必须使用核心JavaScript。框架不允许使用。
8 j3 s' y' j/ ^  f! W, ~# z                                                                8 Q8 E' ^1 D+ r! u( P& L
    解决方案:                                                                4 a9 q# C* a3 ~5 ]! M
                                                                使用 查找index要删除的数组元素indexOf,然后用 删除索引splice。
0 u4 p" U6 G6 U9 G- X$ Zsplice() 通过删除现有元素和/或添加新元素来改变数组的内容。
% I- q  w) P5 I+ y/ k! E. H' W
    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 G! B5 _0 V3 C4 n' i4 i( x8 w
的第二个参数splice要删除的元素数。请注意,splice修改数组并返回包含删除元素的新数组。
2 n- Y$ f7 a1 g" w" y; q' |为了完整起见,这是函数。第一个函数只删除一个匹配项(即删除5)from第一个匹配项[2、5、9、1、5、8、5]),第二个函数删除所有匹配项:
0 L( C3 I! x1 \, n
    - K) m( }6 y! p. l
  • 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;}2 M7 p* R& k, e( k
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则