如何编写JavaScript表达式检查数组是否仅包含指定类型(无return)
检查数组是否仅包含指定类型的无return实现
你的代码里用forEach是行不通的,因为forEach没有返回值,永远返回undefined,所以你的三元表达式不管数组元素类型对不对,都会得到false。
要实现你的需求,直接用数组的every方法就可以,它会遍历数组并检查每个元素是否符合条件,最后返回布尔值,而且箭头函数的表达式体可以直接返回这个结果,完全不需要写return:
const isArrayOfType = (arr, type) => arr.every(item => typeof item === type); const arr = [1, 2, 3]; const typ = 'number'; console.log(isArrayOfType(arr, typ)); // 输出 true
测试混合类型的情况:
const mixedArr = [1, '2', 3]; console.log(isArrayOfType(mixedArr, 'number')); // 输出 false
every方法还会做短路优化——只要遇到第一个不符合条件的元素就停止遍历,比遍历全部元素的效率更高。
内容的提问来源于stack exchange,提问作者Teodor Angelov
相关产品推荐
相关产品推荐

