如何使用Every()在Javascript中返回新数组?
我尝试使用Every()将一个数组与另一个数组进行筛选,因为Every()循环通过一个数组,并在返回false时停止。但是,我试图让它从另一个数组返回新数组,并在它为false时停止 例如,我有这个单词“chance”和这个数组元音=[“a”,“e”,“I”,“o”,“u”]。因此,我想将“chance”中的每个字母与这个元音数组匹配,并提取“ch”,如果“chance”中的“a”与元音数组匹配,则停止 这是我的密码如何使用Every()在Javascript中返回新数组?,javascript,arrays,Javascript,Arrays,我尝试使用Every()将一个数组与另一个数组进行筛选,因为Every()循环通过一个数组,并在返回false时停止。但是,我试图让它从另一个数组返回新数组,并在它为false时停止 例如,我有这个单词“chance”和这个数组元音=[“a”,“e”,“I”,“o”,“u”]。因此,我想将“chance”中的每个字母与这个元音数组匹配,并提取“ch”,如果“chance”中的“a”与元音数组匹配,则停止 这是我的密码 function extract(str) { var vowels =
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"));
函数提取(str){
可变元音=[“a”、“e”、“i”、“o”、“u”];
var word=str.split(“”);
var newlets=[];
var firstletter=str[0];
对于(var i=0;i您不能这样做。
each()
函数用于为每个测试元素返回一个布尔值。
但在它中,您可以在newletters
数组中添加字母,然后返回true
如果元音匹配,只需返回false
即可结束every()
函数。
这样,在处理结束时,newletters
将根据需要进行赋值
for (var i = 0; i <= vowels.length; i++) {
if (firstletter !== vowels[i]) {
word.every(function(letter){
if (letter.indexOf(vowels[i]) === -1 ){
newletters.push(letter);
return true;
}
return false;
})
}
}
for(var i=0;i您可以连接元音并在正则表达式中使用生成的字符串:
函数提取(str){
可变元音=[“a”、“e”、“i”、“o”、“u”];
var regex=new RegExp(“(.*?[”+元音.join(“”+“]);
if(str.match(regex)!=null&&str!=“”){
console.log(str.match(regex)[1]);
//newlets.push(str.match(regex)[1]);
}
}
每一个都返回一个布尔值-你不能改变一个方法是如何工作的-如何使用过滤器或映射来代替?是的,我确实考虑过使用每个数组中除过滤器循环的过滤器。当它返回false时,我希望它停止循环……为什么不使用正则表达式?<代码> var结果= STR.Matt(/^ [^ aiou] */)]〔0〕
。为什么不使用简单的for循环呢?Y也是一个元音,顺便说一句:)关于:“
和“tv”
?两个提取(“”;
(空字符串)和提取(“rythm”);
(无元音)都会抛出错误。