Javascript indexOf()>-1 vs indexOf()!=-1.

Javascript indexOf()>-1 vs indexOf()!=-1.,javascript,Javascript,我开始阅读JavaScript,在第10章中有以下练习: var myImages = [ "usa.gif", "canada.gif", "jamaica.gif", "mexico.gif" ]; function changeImg(e) { var el = e.target; var newImgNumber = Math.round(Math.random() * 3

我开始阅读JavaScript,在第10章中有以下练习:

 var myImages = [
        "usa.gif",
        "canada.gif",
        "jamaica.gif",
        "mexico.gif"
    ];

    function changeImg(e) {
        var el = e.target;
        var newImgNumber = Math.round(Math.random() * 3);

        while (el.src.indexOf(myImages[newImgNumber]) != -1) {
            newImgNumber = Math.round(Math.random() * 3);
        }

        el.src = myImages[newImgNumber];
    }

    function updateStatus(e) {
        var el = e.target;
        var status = document.getElementById("status");

        status.innerHTML = "The image changed to " + el.src;

        if (el.src.indexOf("mexico") > -1) {
            el.removeEventListener("click", changeImg);
            el.removeEventListener("click", updateStatus);
        }
    }

    var imgObj = document.getElementById("img0");

    imgObj.addEventListener("click", changeImg);
    imgObj.addEventListener("click", updateStatus);
他们为什么使用!=-1此处:

和>-1此处:

使用-1让我感到困惑。

使用-1是因为如果数组中不存在搜索到的值,indexOf操作将返回-1

至于他们为什么使用!=-1在一个位置,而>-1在另一个位置,可能是一个编辑器在工作中失败。

使用-1是因为如果数组中不存在搜索的值,indexOf操作将返回-1

至于他们为什么使用!=-1在一个地方,而>-1在另一个地方,可能是一个编辑在工作中摔倒了。

请看:

如果要搜索的值从未出现,则此方法返回-1

您引用的行是条件,如果元素实际在数组中,则满足条件。

请查看:

如果要搜索的值从未出现,则此方法返回-1


您引用的行是条件,如果元素实际在数组中,则满足条件。

如果搜索不在字符串中,indexOf将返回-1。这是因为indexOf将返回搜索词在字符串中的位置。比如说

>-1是另一种说法!==-尽管我个人更喜欢后者

var test = 'testing';
test.indexOf('test'); // returns 0 which is falsy
test.indexOf('st'); // Returns 2
test.indexOf('foo'); // returns -1
数组也是如此


希望这有助于回答为什么-1

indexOf如果搜索不在字符串中,则返回-1。这是因为indexOf将返回搜索词在字符串中的位置。比如说

>-1是另一种说法!==-尽管我个人更喜欢后者

var test = 'testing';
test.indexOf('test'); // returns 0 which is falsy
test.indexOf('st'); // Returns 2
test.indexOf('foo'); // returns -1
数组也是如此


希望这有助于回答为什么-1

研究Array.prototype.indexOf的作用,你会发现你的答案随机元素选择器严重偏向于选择数组中的第一个和最后一个元素。改为使用Math.floorMath.random*myImages.length。这是一本书中的一个例子,我不明白他们为什么使用>-1,我已经看过了Array.prototype.indexOf,但不知道他们为什么使用>-1来查看元素是否被选中。他们使用>-1是因为如果元素不在数组中,则是indexOf的结果……研究什么Array.prototype.indexOf确实如此,您会发现您的答案随机元素选择器严重偏向于拾取数组中的第一个和最后一个元素。改为使用Math.floorMath.random*myImages.length。这是一本书中的一个例子,我不明白为什么他们使用>-1,我已经看过了Array.prototype.indexOf,但不知道为什么他们使用>-1来查看元素是否被选中。他们使用>-1是因为如果元素不在数组中,则是indexOf的结果……那么>-1或!=-1有两种方式可以表示它肯定在变量中?我喜欢将它们视为在任何位置找到的>-1=-1未找到。这是因为如果有其他重要的索引,我总是可以在脑海中使用相同的短语。假设你正在寻找前10项之后的内容,无论出于何种原因,>10表示在10和之后的任何位置都可以找到=10表示在10时找不到。从逻辑上讲,它们在代码中是可互换的,但我不这样使用它们。因此>-1或!=-1有两种方式可以表示它肯定在变量中?我喜欢将它们视为在任何位置找到的>-1=-1未找到。这是因为如果有其他重要的索引,我总是可以在脑海中使用相同的短语。假设你正在寻找前10项之后的内容,无论出于何种原因,>10表示在10和之后的任何位置都可以找到=10表示在10时找不到。从逻辑上讲,它们在代码中是可互换的,但我不这样使用它们。
var test = 'testing';
test.indexOf('test'); // returns 0 which is falsy
test.indexOf('st'); // Returns 2
test.indexOf('foo'); // returns -1