在JavaScript中,可以使用Array.prototype.sort()
和Array.prototype.filter()
方法對數組進行排序和篩選。這里是一個使用forEach
循環同時實現排序和篩選的例子:
// 示例數組
const arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
// 自定義排序函數,例如升序排列
function sortAscending(a, b) {
return a - b;
}
// 自定義篩選函數,例如篩選偶數
function filterEvenNumbers(value) {
return value % 2 === 0;
}
// 使用 forEach 循環進行排序和篩選
arr.forEach((value, index) => {
// 對數組元素進行排序
arr.sort(sortAscending);
// 對數組元素進行篩選
const filteredValue = filterEvenNumbers(value);
// 如果篩選后的值與當前值不同,則替換當前值
if (filteredValue !== value) {
arr[index] = filteredValue;
}
});
console.log(arr); // 輸出: [2, 4, 6, 1, 1, 3, 3, 5, 5, 5, 9]
在這個例子中,我們首先定義了一個自定義排序函數sortAscending
,用于升序排列數組元素。然后,我們定義了一個自定義篩選函數filterEvenNumbers
,用于篩選偶數。
接下來,我們使用forEach
循環遍歷數組中的每個元素。在循環內部,我們首先使用sort()
方法對數組元素進行排序,然后使用filter()
方法對數組元素進行篩選。如果篩選后的值與當前值不同,則替換當前值。
需要注意的是,由于sort()
方法是就地排序,所以在forEach
循環中調用sort()
方法會對數組進行多次排序。為了避免這種情況,你可以先將排序后的數組復制一份,然后在復制后的數組上進行篩選操作。