簡體   English   中英

從數組中的字符串中刪除數字

[英]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+/,""));
}

...對於陣列來說可能快一點。

ref: JavaScript for ...在vs中

var array = ["1AB", "AB2", "A3B"];
array = array.map(function(val) { return val.replace(/\d*/g, "");});

暫無
暫無

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

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