[英]Remove numbers from strings in array
我有一個數組:
var array = ["0CS", "0CR", "1CR", "1AR"]
我想從每個字符串中刪除數字,使其變為:
["CS","CR","CR","AR"]
有沒有比這更有效的方法(純粹在JS中)?
var noNumberArray = []
for(var item in array){
noNumberArray.push(array[item].replace(/\d+/,""));
}
array = noNumberArray;
for( var i=0 ; i<array.length ; ++i ) array[i] = array[i].replace(/\d+/,'')
array // ["CS", "CR", "CR", "AR"]
使用簡單的for循環而不使用額外的數組是性能測試的最佳選擇。
http://jsperf.com/nate-array-manipulation
for (var i = 0, ln = myArray.length; i < ln; i++) {
myArray[i] = myArray[i].replace(/\d+/,"");
}
另外,根據我的測試,在所有情況下,直接更改屬性而不是創建新數組似乎(在某種程度上)更有效(僅在一種情況下)。
forEach
第二, for... in
緊隨其后,而map
的表現最差。
試試這個代碼,這可能對你有幫助
noNumberArray.push(array[item].replace(/[0-9]/g, ''));
for (var i = 0, ln = array.length; i < ln; i++{
noNumberArray.push(array[i].replace(/\d+/,""));
}
...對於陣列來說可能快一點。
var array = ["1AB", "AB2", "A3B"];
array = array.map(function(val) { return val.replace(/\d*/g, "");});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.