some() 方法测试数组中是不是至少有1个元素通过了被提供的函数测试 。它返回的是一个Boolean类型 的值。
demo
const array = [1, 2, 3, 4, 5];
const even = function (element,index) {
return element % 2 === 0 & &index === 3
}
console.log(array.some(even));
语法
arr.some(callback(element[, index[, array]])[, thisArg])
参数
callback
用来测试每个元素的函数,接受三个参数: element 数组中正在处理的元素。 index 可选 数组中正在处理的元素的索引值。 array可选 some()被调用的数组。 thisArg可选 执行 callback 时使用的 this 值。 返回值 数组中有至少一个元素通过回调函数的测试就会返回true;所有元素都没有通过回调函数的测试返回值才会为false。
示例
测试数组元素的值 下面的例子检测在数组中是否有元素大于 10。
function isBiggerThan10(element, index, array) {
return element > 10;
}
[2, 5, 8, 1, 4].some(isBiggerThan10);
[12, 5, 8, 1, 4].some(isBiggerThan10);
使用箭头函数测试数组元素的值
[2, 5, 8, 1, 4].some(x => x > 10);
[12, 5, 8, 1, 4].some(x => x > 10);
判断数组元素中是否存在某个值
此例中为模仿 includes() 方法, 若元素在数组中存在, 则回调函数返回值为 true :
var fruits = ['apple', 'banana', 'mango', 'guava'];
function checkAvailability(arr, val) {
return arr.some(function(arrVal) {
return val === arrVal;
});
}
checkAvailability(fruits, 'kela');
checkAvailability(fruits, 'banana');
使用箭头函数判断数组元素中是否存在某个值
var fruits = ['apple', 'banana', 'mango', 'guava'];
function checkAvailability(arr, val) {
return arr.some(arrVal => val === arrVal);
}
checkAvailability(fruits, 'kela');
checkAvailability(fruits, 'banana');
|