3 回答

TA貢獻1804條經驗 獲得超3個贊
正如多次所述,您沒有理由應該這樣做。
不可能像 map 那樣做,因為 map 返回一個新數組。您可以更改原始數組,也可以復制原始數組,以免更改它。
// 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)
所以不,你不能用過濾器重新創建地圖,因為你必須修改原始數組或欺騙并使用數組的副本。

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