簡體   English   中英

如何從字符串數組中過濾出數字

[英]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);

https://jsfiddle.net/LLc1zp9h/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM