es6 some()方法是用来检测数组中是否存在符合指定条件的元素,存在就返回true,不存在就返回false;换个角度,也可用来检测数组中的所有元素是否都不符合指定条件,都不符合则返回false,有一个或者多个符合则返回true。
本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。
some() 方法可以用于检测数组中的元素是否满足指定条件(函数提供),存在就返回 true,不存在就返回 false。只要数组中有一个元素满足条件,some() 就返回 true;
换个角度思考,some() 也可以用来检测数组中的所有元素是否都不符合指定条件,都不符合的话就返回 false,有一个或者多个符合的话就返回 true。
array.some(function callbackfn(Value,index,array),thisValue)
-
array:必需参数,一个数组对象。
-
function callbackfn(value,index,array)
:一个回调函数,必需参数,最多可接受三个参数:-
value:当前数组元素的值,不可省略。
-
index:当前数组元素的数字索引。
-
array:当前元素属于的数组对象。
some() 方法会为 array 中的每个元素调用 callbackfn 函数,直到 callbackfn 返回 true,或直到到达数组的结尾。
-
-
thisArg:可选参数,可在 callbackfn 函数中为其引用 this 关键字的对象。如果省略 thisArg,则 undefined 将用作返回 false。
song() 方法会按升序索引顺序对每个数组元素调用 callbackfn 函数,直到 callbackfn 函数返回 true。如果找到导致 callbackfn 返回 true 的元素,则 some() 方法会立即返回 true。如果回调不对任何元素返回 true,则 some() 方法会返回 false。
some() 方法不为数组中缺少的元素调用该回调函数。除了数组对象之外,some() 方法可由具有 length 属性且具有已按数字编制索引的属性名的任何对象使用,如关联数组、Arguments 等。
示例:检测数组中元素的值是否都为奇数
如果 some() 方法检测到偶数,则返回 true,并提示不全是奇数;如果没有检测到偶数,则提示全部是奇数。
function f(value, index, ar) { if (value % 2 == 0) { return true; } } var a = [1,15,4,10,11,22]; var evens = a.some(f); if (evens) { console.log("不全是奇数。"); } else { console.log("全是奇数。"); }
【推荐学习:javascript高级教程】