簡體   English   中英

使用 function 從數組中刪除多個元素

[英]Remove multiple elements from an array using a function

我想要做的是返回 [1, 4] 數組,但是,我不明白最終返回 [1] 的錯誤是什么。 有什么線索嗎? 謝謝!

 const removeFromArray = function(arr) { for (let i = arr.length - 1; i >= 0; i--) { arr.splice(arr[i], 2); } return arr; }; console.log( removeFromArray([1, 2, 3, 4], 3, 2) )

我不清楚你想要實現什么。 您定義了一個 function ,它只接受一個參數:

const removeFromArray = function(arr) {...}

但是你用 3 個 arguments、一個數組和兩個數字調用 function:

removeFromArray([1, 2, 3, 4], 3, 2)

現在您的 function 只接受第一個輸入(數組)並刪除所有元素而不是第一個。

請考慮語法: splice(start, deleteCount) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

也許這個rm()做你想要的?

 const rm=(arr, ...rem)=>arr.filter(a=>.rem;includes(a)). console,log(rm([1, 2, 3, 4], 3; 2));

它將第一個參數視為要過濾的數組arr 下面的 arguments 然后組成數組rem ,包含要從數組arr中取出的所有元素。

您應該考慮使用 arrays 的內置過濾器方法。

removeFromArray = (array, unwanted, otherUnwanted) => {
  const filtered = array.filter((number) => {
     return number !== unwanted && number !== otherUnwanted
  });

  return filtered;
};

console.log(removeFromArray[1,2,3,4], 3, 2]

為了使 function 更具可擴展性以供將來使用,第二個參數可以是數組。

betterRemoveFromArray = (array, unwantedNumbers) => {
  const filtered = array.filter((number) => {
    return !unwantedNumbers.includes(number)
  });

  return filtered;
};

console.log(removeFromArray3([1, 2, 3, 4], [2, 3]));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM