检查数组中元素是否符合指定条件

             **检查数组中元素是否符合指定条件**  

列子:给定一个语句 匹配是否符合是全字母语句(Pangram)忽略大小写和字符
如"The quick brown fox jumps over the lazy dog。"

我的写法:
function isPangram(string){
string = string.toLowerCase();
let arr= “abcdefghijklmnopqrstuvwxyz”.split("").filter(function(x){
return string.indexOf(x) !== -1;
});
if(arr.length==26){
return true
}
else{
return false
}
}

大佬写法:
function isPangram(string){
string = string.toLowerCase();
return “abcdefghijklmnopqrstuvwxyz”.split("").every(function(x){
return string.indexOf(x) !== -1;
});
}

这里用到了 every 的用法
1.every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
2.every() 方法使用指定函数检测数组中的所有元素:
3.如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
4.如果所有元素都满足条件,则返回 true。
5.注意: every() 不会对空数组进行检测。
6.注意: every() 不会改变原始数组。

我用的是filter ,和every 对比的话,效率会低 ,因为filter是整个数组检查,every 是第一个有问题,后续不在检查。这里 我想到了 find 或者findindex 也是只返回第一个可以尝试一下

function isPangram(string){

string =string.toLowerCase();
let arr= “abcdefghijklmnopqrstuvwxyz”.split("").find(function(x){
return string.indexOf(x) == -1;
});
return arr ? false:true
}
END…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值