1
(['1','2','3']).map(n => parseInt(n));
將返回預期導致[1,2,3]
爲什麼`(['1','2','3'])。map(parseInt)`得不到正確的結果?
但是:
(['1','2','3']).map(parseInt);
回報[1, NaN, NaN]
。
哪裏出錯?
(['1','2','3']).map(n => parseInt(n));
將返回預期導致[1,2,3]
爲什麼`(['1','2','3'])。map(parseInt)`得不到正確的結果?
但是:
(['1','2','3']).map(parseInt);
回報[1, NaN, NaN]
。
哪裏出錯?
由於Array#map
回調有3個參數,第二個參數是index
這是造成這種結果。不管你輸入的是function
作爲callback
,這個參數都作爲該函數的參數傳遞。
爲parseInt
第二個參數是radix
因此parseInt('2',1)
和parseInt('3',2)
是NaN
執行流程將是:
console.log((['1', '2', '3']).map(function(currenValue, index, array) {
return parseInt(currenValue, index, array);
}));
我會建議你去與Number
console.log((['1', '2', '3']).map(Number));
@NagaSaiA - 檢查'z' – Rayon
始終使用map'的'明確的版本,以避免意外的行爲結果:'[...]地圖(X => F(X。 ))'。 – ftor