大家好我认为下面的代码应该可行,但它没有,我不知道为什么,有什么建议吗?
它接收带有数字和字母的数组,并使用小写辅音返回它。数字保持不变
示例:consonantstoLowerCase([1,5,7,'a','J','p','E'])
返回[1,5,7,'a','j',p,'E']
function consonantstoLowerCase( array )
{
var result = array.toString().replace(/[bcdfghjklmnpqrstvwxyz]/g, function (char)
{
return char.toLowerCase();
});
console.log(result)
}
输出:
consonantstoLowerCase([1,5,7,'a','J','p','E'])
=> 1,5,7,a,J,p,E
提前致谢!
答案 0 :(得分:0)
consonantstoLowerCase([1,5,7,'a','J','p','E','k','m','I'])
function consonantstoLowerCase( array )
{
var result = array.toString().replace(/[bcdfghjklmnpqrstvwxyz]/ig, function (char)
{
return char.toLowerCase();
});
console.log(result)
}

答案 1 :(得分:0)
要获取所需的数组,只需映射值,检查它们是否与辅音匹配,如果匹配,则返回toLowerCase()
。 (还要注意匹配器上的i
修饰符 - 现在我们也要检查大写字母,就像你想要的那样......)。
啊,因为这是写的,我检查不匹配的人声和数字......
var input = [1,5,7,'a','J','p','E'];
function consonantToLowerCase(arr) {
var vocals = /[aeiou0-9]/ig;
return arr.map(function(e) {
if (! e.toString().match(vocals)) return e.toLowerCase();
return e;
});
}
console.log(consonantToLowerCase(input));
答案 2 :(得分:0)
这应该这样做:
var arr = [1,5,7,'a','J','p','E'];
arr = arr.map(e => /[BCDFGHJKLMNPQRSTVWXYZ]/g.test(e) ? e.toLowerCase() : e);
console.log(arr);
在回应你的评论时,要将辅音改为小写和元音改为大写,你可以这样做:
var arr = [1,5,7,'a','J','p','E'];
arr = arr.map(function(e){
e = /[BCDFGHJKLMNPQRSTVWXYZ]/g.test(e) ? e.toLowerCase() : e;
e = /[aeiou]/g.test(e) ? e.toUpperCase() : e;
return e;
});
console.log(arr);