Tại sao điều này xảy ra?parseTiếp tục không đúng khi được chuyển làm đối số cho cuộc gọi bản đồ
var numbers = [ '1', '2', '3', '4' ];
var intNumbers = numbers.map(parseInt); // intNumbers = [1, NaN, NaN, NaN]
var fltNumbers = numbers.map(parseFloat); // fltNumbers = [1, 2, 3, 4, 5 ]
Nhưng Array.prototype.map.call(numbers, parseInt);
trả về [ 1, 2, 3, 4];
. Tôi đang chạy mã này trong Google Chrome 26.0.1410.65.
giải thích tại https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/map –
cũng đơn giản sửa chữa: 'numbers.map (function (i) {return parseInt (i)}) ' – Jonah
Ngoài ra, đừng quên * luôn luôn * chuyển tham số radix thành' parseInt() 'và đặt nó thành' 10' nếu bạn đang sử dụng cơ sở 10, bởi vì, nếu không, bạn có thể gặp phải vấn đề lạ và rất khó để gỡ lỗi sau này. – rid