2015-04-03 24 views
0

我想問一下,是否可以在javascript中修改數組中多個字符串的長度。 我的數組中的每個字符串的長度都不相同,但是我想修剪每個字符串的最後2位(即修剪「-2」)。Javascript:修整數組中字符串的長度

var array = ["517577144-2","503222534-2","100003527692828-2","654703438-2","4205501-2"] 

乾杯, 卡倫

回答

1

地圖功能:

array = array.map(function(d){return d.substr(0,d.length-2)}); 

,或者你可以使用裏面片方法:

array = array.map(function(d){return d.slice(0,-2)}); 
+1

很好的答案,但'd.slice(0,-2)'是少代碼。 – 2015-04-03 07:38:44

+0

@Moogs好主意,更新了答案,可以將字符串視爲數組:) – 2015-04-03 07:45:26

0

你可以嘗試這樣的:

var x; 
for(x = 0; x < 10; x++) 
{ 
    array[x] = array[x].replace('-2', ''); 
} 

JSFIDDLE DEMO

+1

然而,這假設'-2'子串只出現在這些字符串的末尾。 – doldt 2015-04-03 07:38:11

0

這將刪除數組中的最後一個字符-2

array = array.map(function(item) { 
     return item.replace('-2', ''); 
    }) 

如果你想在最後,以去除任何字符沒有特別-2然後

array = array.map(function(item) { 
     return item.substr(0, item.length-2); 
    }) 
0

多種方式,以最後兩個字符修剪:substrsubstringreplaceslice(乾淨的解決方案)。

var array = ["517577144-2","503222534-2","100003527692828-2","654703438-2","4205501-2"]; 
 

 
// Using substr method 
 

 
var trimmed = array.map(function(item) { 
 
    return item.substr(0,item.length - 2); 
 
}); 
 

 
log(trimmed); 
 

 

 
// Using substring method 
 

 
trimmed = array.map(function(item) { 
 
    return item.substring(0,item.length - 2); 
 
}); 
 

 
log(trimmed); 
 

 

 
// Using regular expression in replace method 
 

 
trimmed = array.map(function(item) { 
 
    return item.replace(/.{2}$/,''); 
 
}); 
 

 
log(trimmed); 
 

 

 
// Using slice method 
 

 
trimmed = array.map(function(item) { 
 
    return item.slice(0,-2); 
 
}); 
 

 
log(trimmed); 
 

 

 
function log(array) { 
 
    document.write('<pre>' + JSON.stringify(array, null, 2) + '</pre>'); 
 
}

而是地圖,隨時可以使用標準的for循環了。

1

另一種選擇是,你可以沿着使用地圖切片功能:

array = array.map(function(str){return str.slice(0,str.length-2)}); 
0

使用開源項目jinqJs它僅僅是

var result = jinqJs().from(array).select(function(row){return row.slice(0, row.length-2);}); 

Fiddle