2017-10-10 90 views
1

我正在嘗試編寫一個函數,它將刪除JavaScript中的字符串列表中的所有元音。我知道如何用單個字符串來做到這一點,但是當我應用一個字符串數組時,我遇到了問題。我收到錯誤TypeError: strings.replace is not a function如何從JavaScript中的字符串列表中刪除元音

var strings = ["bongo drums", "guitar", 
    "flute", "double bass", "xylophone","piano"];       

    string = strings.replace(/[aeiou]/g, '');    

    console.log(string); 
+0

在裏面做一個for? –

+0

字符串是一個數組不是一個單獨的字符串,你需要使用映射或迭代通過每個字符串來做到這一點 –

+0

檢查此鏈接,它似乎突出你的問題:https://stackoverflow.com/questions/26742310/replace-characters -in-串陣列的JavaScript。 – Koshux

回答

1

變種字符串= [ 「邦戈鼓」, 「吉他」, 「笛」, 「低音提琴」, 「木琴」, 「鋼琴」];

string = strings.filter(function(item){return item.replace(/ [aeiou]/g,''));

+0

你確定它會工作嗎? –

+0

使用'Array#filter()'具有刪除數組中只有元音的任何字符串的副作用。是否需要這是另一個問題。 –

2

您需要迭代並用給定的字符串數組替換每個元素。

var strings = ["bongo drums", "guitar", "flute", "double bass", "xylophone", "piano"]; 
 

 
strings = strings.map(function (string) { 
 
    return string.replace(/[aeiou]/g, ''); 
 
}); 
 

 
console.log(strings);

3

下面是使用map一個解決方案:

var strings = ["bongo drums", "guitar", 
 
    "flute", "double bass", "xylophone", "piano" 
 
]; 
 

 
strings = strings.map(string => string.replace(/[aeiou]/g, '')); 
 

 
console.log(strings);

1

var strings = ["bongo drums", "guitar", 
 
    "flute", "double bass", "xylophone","piano"];       
 

 
    string = strings.map(x=>x.replace(/[aeiou]/g, ''));    
 

 
    console.log(string);

0

使用for循環或.map()遍歷數組中的每個字符串並應用替換元音的方法。

2

您可以使用array#map()遍歷您的strings數組。

var strings = ["bongo drums", "guitar", "flute", "double bass", "xylophone","piano"];   
 
var string = strings.map(x => x.replace(/[aeiou]/g, '')); 
 
console.log(string);

0

您的字符串數組上進行操作,所以你必須使用一些循環或迭代器遍歷數組並執行替換該數組的單個項目。在下面的代碼中,我使用map函數來循環和刪除每個索引中的元音。

var strings = ["bongo drums", "guitar", 
"flute", "double bass", "xylophone","piano"];  

var stringsWithOutVovels = strings.map(function(item){ 
    return item.replace(/[aeiou]/g, ''); 
}); 

console.log(stringsWithOutVovels); 
相關問題