簡體   English   中英

是否可以操作 Array.prototype.map() 的 index 參數?

[英]Is it possible to manipulate the index parameter of Array.prototype.map()?

我想知道在使用 map 函數時刪除數組中的元素后是否可以做一個“索引--”。

例子:

arr.map((item, index) => item >= a && item <= b? item : arr.splice(index, 1));

刪除該索引處的元素后,下一次迭代的索引需要為“index - 1”。 是否有可能以某種方式操縱 map 函數中的索引?

不是以任何優雅的方式。 更好的選擇是完全避免splice ,而是僅使用從數組方法返回的新數組,丟棄舊數組。

如果要刪除ab之間a項目,請使用.filter

const itemsNotBetweenAAndB = arr.map(item => item >= a || item <= b);

如果您必須使用 splice 來改變現有數組(我建議不要這樣做,因為它丑陋且不純),請使用for循環:

for (let i = arr.length - 1; i >= 0; i--) {
  if (arr[i] > a && arr[i] < b) {
    arr.splice(i, 1);
  }
}

.map應該僅用於基於轉換原始數組的所有元素來創建新數組。 從這里開始,看起來您想從原始數組中刪除元素而不轉換每個項目, .map不合適,因為它不會幫助您實現目標。

暫無
暫無

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

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