如何从字符串数组中筛选出数字
How to filter out number from array of strings
我有一个数组var data=["test","10%","abc","20%"];
现在有没有什么方法可以让我过滤掉,只得到像result=["10%","20%"];
这样的数字
您可以使用此function
:
解释:我们创建了一个新的数组并推送旧数组的所有元素,
如果第一个字母可以转换为数字。
var data = ["test", "10%", "abc", "20%"];
function onlyNumbers(array) {
var newArr = [];
array.forEach(function(e) {
if (parseInt(e.charAt(0))) {
newArr.push(e);
}
})
return newArr;
}
var dataNew = onlyNumbers(data); // <-- ["10%","20%"]
document.write(JSON.stringify(dataNew));
这将解决您的问题,并创建只有好元素的新数组:
function check_percentage(num){
var regex = /^('d+%)$/;
if (num.match(regex)){
return true;
}
}
var result=["babab","fg210%","120%","babab","4214210%","20%"],
filtered_result=[];
result.forEach(function(k,v){
if (check_percentage(k)){
filtered_result.push(k);
}
});
console.log(filtered_result);
https://jsfiddle.net/LLc1zp9h/
您可以使用下划线库并执行:
var data=["test","10%","abc","20%"];
var result = _.filter(data, function(item) {
return item.match(/^('d+|'d+[.]'d+)%?$/);
});
document.write(JSON.stringify(result));
<script src="http://underscorejs.org/underscore-min.js"></script>
在没有外部库的情况下也可以这样做:
var data=["test","10%","abc","20%"],
result = [];
for(var i = 0; i < data.length; i++) {
if (data[i].match(/^('d+|'d+[.]'d+)%?$/)) {
result.push(data[i]);
}
}
document.write(JSON.stringify(result));
var data = ["test", "10%", "abc", "20%"];
var result = [];
data.forEach(function(v) {
if (parseInt(v) > 0) result.push(parseInt(v));
});
console.log(result);
如果您需要的不是数字而是字符串值,那么只需替换:result.prush(parseInt(v));=>result.prush(v);
相关文章:
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 测试索引值是否等于某个数字的倍数
- 将数字转换为一定数量的硬币
- 键入最后一位数字后自动提交
- 使用AngularJS中的筛选器更新给定的表
- 如何在javascript中迭代数字列表
- Javascript逻辑运算符和字符串/数字
- 如何在javascript中获得与特定数字相等的随机数
- 淘汰搜索/筛选
- 如果元素's的ID以数字开头
- 递增一个数字而不去掉前导零
- 如何使用JavaScript查找1和N之间的所有数字的总和
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- 如何在这里将两个值最低的数字相加
- 如何删除除冒号、数字和'上午'或者'下午'
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- OData:对url请求中的数字(ID)字段进行通配符(startswith)筛选
- 如何从字符串数组中筛选出数字
- 使用javascript从数组中筛选出数字索引
- 如何根据数字范围筛选数组