2016-12-18 130 views
1

我想從數組中刪除所有相同的話裏面的所有類似的話的JavaScript如何刪除陣列

var e = ["1A","2A","3A","4A"]; 

如何從變量e刪除所有A,這樣我可以得到這樣的

["1","2","3","4"] 
+0

e.map(V => v.substr(0,1)) – Gerrit0

+1

將它永遠是一個'A'最後?或者你想在開始時保留數字,而不管最後的字母是多少? – Max

回答

0

這種方式將工作的所有瀏覽器

var word = 'killMe'; // word that you whant to remove 
var bad_array = ['1killMe','2 killMe','killMe 3']; // from where you whant to remove it 

for (var i=0; i<bad_array.length; i++){ 
    bad_array[i] = bad_array[i].split(word).join(''); 
} 

console.dir(bad_array); 
0

使用map(),你可以調用replace()陣列中的每個元素:

var e = ["1A","2A","3A","4A"]; 
 
e = e.map(function(elt) { 
 
    return elt.replace('A', ""); 
 
}); 
 
console.log(e);

0

您可以在數組上使用map來對其每個元素應用一個函數。

console.log(
    e.map( 
     function(element){ 
      return element.replace("A", "") //Remove "A" 
     } 
    ) 
) 

您可以更改功能以執行任何您喜歡的操作。

注意:map不會更改原始數組,它只是返回一個新的數組。這意味着如果您想更改e,則必須將返回的值分配回e

較新的瀏覽器支持arrow functions,這是一個syntactic sugarlambdas

下面是使用這些新的箭頭功能

console.log(
    e.map( 
     element => element.replace("A", "") //Remove "A" 
    ) 
) 

或作爲一行的代碼(與所述變元爲el代替element縮短它)

console.log(e.map(el => el.replace("A", "")))

或者,分配新值返回e你可以做

e = e.map(el => el.replace("A", ""))

記住: IE不支持箭頭功能(但它正在被Microsoft Edge取代,所以不應該是一個問題)。如果您想確保每個瀏覽器都是完全兼容的,請使用更長的function(arg){return ...;}而不是更易讀的(arg) => ...。但是,箭頭功能應該可以在現代瀏覽器中使用。

0

var f = e.join(); 
 

 
var g = f.replace(/A/g, ''); 
 

 
g.split(',');