【发布时间】:2023-03-09 21:33:01
【问题描述】:
我有以下 sn-p 代码:
return (AllowableCharacters.indexOf(String.fromCharCode(k)) != -1);
现在,我不太明白这个脚本中 -1 的用法。
脚本读取方式如下:
first String.fromCharCode(k) != -1 被执行(k 是关键代码,我是从其他脚本动态获取的)。
然后我从 AllowableCharacters 获得 indexof(String.fromCharCode(k) != -1)。
这是一个类似这样的字符串:
AllowableCharacters = "abc" ;
我也明白,如果 indexof 在上面的字符串中找不到值,它会返回 -1。
但是,回到我的问题,为什么 -1 在脚本中?
编辑 ::
为了让我的问题更简单,您将如何阅读以下行:
String.fromCharCode(k))!=-1
简单明了的英语。
编辑 2::
好的,所以我只是阅读了 guffa 的答案并制作了一个随机脚本来检查,这是脚本:
var store = "abcdefgpS";
function check_index(){
console.log(store.indexOf(String.fromCharCode(83)));
};
在上面的函数中, !-1 被排除在外,所以在 console.log 中,如果找到匹配项,我们将获得找到该字符的 indexOf ,如果未找到匹配项,我们将获得 -1 。
现在, 现在这不是我们想要的,我们想要的是“告诉我值是否存在”(返回 true)或“告诉我值是否不存在”(返回错误的)。
所以我们要做的就是把上面的脚本改成:
var store = "abcdefgpS";
function check_index(){
console.log(store.indexOf(String.fromCharCode(83)) !-1);
};
其中,给你真值或假值。
现在怎么样:
return (store.indexOf(String.fromCharCode(83)) !-1)
读作:
if (store.indexOf(String.fromCharCode(83)) !-1){
return true;
}else { return false; }
我在 .
return (store.indexOf(String.fromCharCode(83)) !-1);
谢谢,
亚历山大
【问题讨论】:
-
简单的答案是无法检查真实性,因为
0是一个有效索引但不是真实性的。因此索引方法使用-1表示它不存在 -
@charlietfl 查看我的 edit2 。谢谢。