javascript:迭代器

时间:2015-07-31 15:20:22

标签: javascript collections visual-studio-2015

好的,我觉得这个很傻。

我正在尝试定义一个函数,用于检查列表框项集合中是否已存在项目(实际上可能是任何集合)

这里是:

<script type="text/javascript">
        function canInsert(listbox, item)
        {
            if (item == null)
                return true;

            var itemCount = listbox.GetItemCount();

            for (var i = 0; i < itemCount; i++)
            {
                var nitem = listbox.GetItem(i);
                if (nitem.value === item.value)
                    return false;
                return true;
            }
        }
    </script>

使用VS 2015 CE,它说i ++是无法访问的代码。如何?为什么?

1 个答案:

答案 0 :(得分:0)

就像Igor所说,当你在for循环结束时返回true时,JS将立即退出函数,返回值'true'。

您可以执行当前的for循环,如果满足if语句条件,将返回false并退出该函数。在for循环之后,如果从未满足条件,则返回true。您的代码应如下所示:

<script type="text/javascript">
    function canInsert(listbox, item)
    {
        if (item == null)
            return true;

        var itemCount = listbox.GetItemCount();

        for (var i = 0; i < itemCount; i++)
        {
            var nitem = listbox.GetItem(i);
            if (nitem.value === item.value)
                return false;
        }
        return true;
    }
</script>