函数总是返回false

Spa*_*ark 0 javascript jquery

相当新的Javascript,任何人都可以告诉我为什么这个简单的数组循环/字符串比较函数总是返回false?它们都是字符串类型,数据是相同的,循环应该绝对返回true.可能的语法错误?还有一种更简单的方法来运行此检查.

function imageDuplicate(fileName)
{
    $.each(previewImagesArray, function(index)
    {
        if(previewImagesArray[index].name == fileName)
            return true;
    });
    return false
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Aru*_*hny 11

您从匿名内部函数返回true imageDuplicate,而不是从,而是使用标志变量,如下所示

function imageDuplicate(fileName) {
    var valid = false;
    $.each(previewImagesArray, function (index) {
        if (previewImagesArray[index].name == fileName) {
            valid = true;
            //to stop the iteration
            return false
        }
    });
    return valid
}
Run Code Online (Sandbox Code Playgroud)


Dal*_*rzo 8

怎么样呢:

function imageDuplicate(fileName)
{
   return  previewImagesArray.some(function(item)
    {
        return item.name === fileName;
    });
}
Run Code Online (Sandbox Code Playgroud)

重要提示:这将适用于IE9 +如果您需要在IE9的旧版本中运行,请按照此处的polyfill说明进行操作.

其他邮寄样本:

javascript在数组中查找具有特定属性的对象