JavaScript中-1的含义及代码里indexOf(c) > -1的作用解析
问题解答
先看你给出的代码:
function first(first, second) { return Array.prototype.every.call(first, function(c) { return second.indexOf(c) > -1; }, this); }
关于.indexOf(c) > -1的含义
在JavaScript中,数组或字符串的indexOf()方法用于查找目标元素/字符首次出现的位置:
- 找到目标时,返回它的索引值(索引从0开始计数,比如数组第一个元素索引是0,第二个是1)
- 找不到目标时,返回
-1
所以.indexOf(c) > -1的本质是判断c这个元素是否存在于second当中。只要c存在,indexOf返回的索引就是0或正数,必然大于-1;如果不存在,返回-1,条件不成立。
JavaScript中-1在这里的含义
这里的-1是JavaScript查找类方法(比如indexOf、lastIndexOf)的标准约定返回值,用来表示“未找到匹配项”。因为数组/字符串的有效索引都是从0开始的非负整数,用-1这个负数可以明确区分“存在”和“不存在”两种状态,不会和有效索引混淆。
补充:整个函数的作用
这段代码的功能是:检查第一个参数first(通过Array.prototype.every.call可处理类数组对象,比如字符串、DOM集合)中的每一个元素,是否全部存在于第二个参数second里。如果所有元素都符合条件,返回true;只要有一个元素不在second里,就返回false。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

