Amb*_*ili 3 javascript arrays string filter
我有一个如下所示的数组,需要从中过滤掉数字,例如: [1,2]
var str = [
"https://xx.jpg",
"https://xx.jpg",
"1",
"https://guide.jpg",
"2",
"/static.jpg"
]
Run Code Online (Sandbox Code Playgroud)
我有以下代码:
var filtered = str.filter(function(item) {
return (typeof item === "number")
});
Run Code Online (Sandbox Code Playgroud)
但它没有过滤,因为它是一个字符串。
怎么做?
20B*_*0B2 13
我认为这是从数组中过滤掉数字的最精确方法。
str.filter(Number);
Run Code Online (Sandbox Code Playgroud)
如果数组包含字符串形式的数字,则生成的数组将具有字符串形式的数字。在您的情况下,结果数组将为 ["1", "2"]。
如果原始数组包含 0 或“0”,则它们将不会出现在结果数组中。
如果结果数组应该只包含整数,
str.filter(Number.isInteger)
Run Code Online (Sandbox Code Playgroud)
这将排除字符串形式的数字,如“1”、“2”等。
对于整数和浮点数,
str.filter(Number.isFinite)
Run Code Online (Sandbox Code Playgroud)
对您的代码进行一些小的更改以使其工作,这可能会起作用。
var str = ["https://xx.jpg", "https://xx.jpg", "1", "https://guide.jpg", "2", "/static.jpg"];
var filtered = str.filter(function (item) {
return !(parseInt(item) == item);
});
console.log(filtered);Run Code Online (Sandbox Code Playgroud)
或者,如果您想要数字:
var str = ["https://xx.jpg", "https://xx.jpg", "1", "https://guide.jpg", "2", "/static.jpg"];
var filtered = str.filter(function (item) {
return (parseInt(item) == item);
});
console.log(filtered);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34654 次 |
| 最近记录: |