[英]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));
var data = ["test", "10%", "abc", "20%"]; var result = []; data.forEach(function(v) { if (parseInt(v) > 0) result.push(parseInt(v)); }); console.log(result);
如果不需要數字而是字符串值,則只需替換:result.push(parseInt(v)); => result.push(v);
您可以使用下划線庫並執行以下操作:
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));
這將解決您的問題並創建僅包含良好元素的新數組:
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.