3 回答

TA貢獻1790條經(jīng)驗 獲得超9個贊
Array.prototype.filter
僅過濾數(shù)組中的現(xiàn)有值,有效地創(chuàng)建一個新數(shù)組,該數(shù)組可以根據(jù)過濾函數(shù)保存相同的值、它們的子集或空數(shù)組。

TA貢獻1804條經(jīng)驗 獲得超3個贊
正如多次所述,您沒有理由應該這樣做。
不可能像 map 那樣做,因為 map 返回一個新數(shù)組。您可以更改原始數(shù)組,也可以復制原始數(shù)組,以免更改它。
// this modifies the orginal array
var arr1 = [1,2,3]
arr1.filter((v,index,arr)=>{
arr[index] = v * 2;
return true
})
console.log(arr1)
// or you can clone it and do the same thing
// this modifies the cloned array
var arr2 = [1,2,3]
var arr3 = arr2.slice()
arr3.filter((v,index,arr)=>{
arr[index] = v * 2;
return true
})
console.log(arr2, arr3)
所以不,你不能用過濾器重新創(chuàng)建地圖,因為你必須修改原始數(shù)組或欺騙并使用數(shù)組的副本。

TA貢獻1848條經(jīng)驗 獲得超6個贊
你可以使用filter():
const arr = [1, 2, 3];
arr.filter((c, i) => {
arr[i] = +arr[i] * 2;
return true;
});
console.log(arr)
我們總是回來true,所以filter()在這種情況下沒有意義。
添加回答
舉報