溫馨提示×

如何利用each實現(xiàn)數(shù)組的排序與篩選

PHP
小樊
82
2024-09-21 01:30:46
欄目: 編程語言

在JavaScript中,可以使用Array.prototype.sort()Array.prototype.filter()方法對數(shù)組進行排序和篩選。這里是一個使用forEach循環(huán)同時實現(xiàn)排序和篩選的例子:

// 示例數(shù)組
const arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];

// 自定義排序函數(shù),例如升序排列
function sortAscending(a, b) {
  return a - b;
}

// 自定義篩選函數(shù),例如篩選偶數(shù)
function filterEvenNumbers(value) {
  return value % 2 === 0;
}

// 使用 forEach 循環(huán)進行排序和篩選
arr.forEach((value, index) => {
  // 對數(shù)組元素進行排序
  arr.sort(sortAscending);

  // 對數(shù)組元素進行篩選
  const filteredValue = filterEvenNumbers(value);

  // 如果篩選后的值與當(dāng)前值不同,則替換當(dāng)前值
  if (filteredValue !== value) {
    arr[index] = filteredValue;
  }
});

console.log(arr); // 輸出: [2, 4, 6, 1, 1, 3, 3, 5, 5, 5, 9]

在這個例子中,我們首先定義了一個自定義排序函數(shù)sortAscending,用于升序排列數(shù)組元素。然后,我們定義了一個自定義篩選函數(shù)filterEvenNumbers,用于篩選偶數(shù)。

接下來,我們使用forEach循環(huán)遍歷數(shù)組中的每個元素。在循環(huán)內(nèi)部,我們首先使用sort()方法對數(shù)組元素進行排序,然后使用filter()方法對數(shù)組元素進行篩選。如果篩選后的值與當(dāng)前值不同,則替換當(dāng)前值。

需要注意的是,由于sort()方法是就地排序,所以在forEach循環(huán)中調(diào)用sort()方法會對數(shù)組進行多次排序。為了避免這種情況,你可以先將排序后的數(shù)組復(fù)制一份,然后在復(fù)制后的數(shù)組上進行篩選操作。

0