tôi thấy cách này mát mẻ của việc sử dụng phương pháp Array.prototype.filter
để loại bỏ tất cả các phi số từ một chuỗi, nhưng tôi không hoàn toàn chắc chắn làm thế nào nó bằng cách sử dụng nguyên mẫu Number
để đạt được điều này:'Số' trong Array.prototype.filter (Số) hoạt động như thế nào?
var arr = '75number9';
arr.split(/[^\d]/).filter(Number); // returns [75, 9]
Khi tôi kiểm tra typeof Number
tôi nhận được trở lại 'function'
. Chuyện gì đang xảy ra ở đây?
Thêm vào sự nhầm lẫn của tôi là nếu tôi thay thế Number
bằng String
, kết quả sẽ giống nhau. Nó vẫn làm việc!
arr.split(/[^\d]/).filter(String); // returns [75, 9]
Array
và Object
như thông số, mặt khác, trở về này:
["75", "", "", "", "", "", "9"]
Rất tò mò muốn hiểu điều này!
một số loại có thể hoạt động. ['Chức năng đối tượng (thực hiện [[Gọi]] trong điều khoản ECMA-262) \t" chức năng "'] (https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Tham chiếu/Toán/typeof) – 13ruce1337
@ 13ruce1337: Tất cả "loại" là hàm, vì trong javascript một lớp và hàm tạo là một và giống như – Eric
@Eric tôi vừa mới phá vỡ não một vài giây trước nghĩ rằng ... cảm ơn cho xác nhận. – 13ruce1337