我試圖用Every()過濾掉另一個數組的數組,因爲Every()循環訪問一個數組,並且一旦返回false就停止。但是,我試圖讓它從其他數組返回新的數組,並且一旦它是假的就停下來。如何使用Every()在Javascript中返回一個新數組?
例如,我有這個詞「機會」,這個數組元音= [「a」,「e」,「我」,「o」,「u」]。所以我想把「機會」中的每個字母都匹配到這個元音數組中,並提取「ch」,如果「機會」中的「a」匹配元音數組,就停止。
這裏是我的代碼
function extract(str) {
var vowels = ["a", "e", "i", "o", "u"];
var word = str.split("");
var newletters = [];
var firstletter = str[0];
for (var i = 0; i <= vowels.length; i++) {
if (firstletter !== vowels[i]) {
word.every(function(letter){
if (letter.indexOf(vowels[i]) === -1){
return newletters.push(letter);
} else {
return false;
}
})
}
}
//return str;
}
console.log(extract("chance"));
我無法弄清楚如何使工作在新的陣列來獲得「CH」。
每次返回boolean - 你不能改變的方法是如何工作的 - 怎麼樣使用過濾器還是映射? –
是的,我確實考慮過使用過濾器,而不是通過數組中的所有對象的過濾器循環。我希望它一旦返回false就停止循環... –
爲什麼不使用正則表達式? 'var result = str.match(/^[^ aeiou] * /)[0];'。 –