Javascript检查是否已存在名称

Javascript检查是否已存在名称,javascript,Javascript,我正在尝试检查文件夹名称是否唯一。如果我输入了一个已经存在的名称,它就会正常工作,但是如果我输入了一个还不存在的名称,它就会崩溃 // Determines if the folder's name is unique // @param {String} name folder name // @return {Boolean} true if unique function isFolderNameUnique(name) { name = name.toLowerCas

我正在尝试检查文件夹名称是否唯一。如果我输入了一个已经存在的名称,它就会正常工作,但是如果我输入了一个还不存在的名称,它就会崩溃

// Determines if  the folder's name  is unique
//  @param  {String}  name folder name
 // @return {Boolean} true if unique

function isFolderNameUnique(name) {

  name = name.toLowerCase();

    if(RESERVED_FOLDER_NAMES.indexOf(name) !== -1) {
        return false;
    }
    var i = folders.length;
    while(i--) {
        if(folders[i].name.toLowerCase() === name) {
            return false;
        }
    }
    return true;
}
它在
if(文件夹[i].name.toLowerCase()
with

TypeError: undefined  is  not a function 'M[r].name.toLowerCase()')

如果您在完整的javascript代码中使用数组或数组与对象的组合,我不会这样做,但这里有一个可行的替代解决方案

Javascript代码:(JSFIDLE示例:


var i=folders.length-1;//?为什么不像检查“保留文件夹名称”一样检查“文件夹”列表?编辑oh,因为“文件夹”列表中可能有大写字母。无论如何,错误意味着“文件夹”列表中有一个条目的“名称”属性不是字符串。@InvernoMuto但是,如果他预先递减,他会意外地删除第一个元素。无论如何,我想我们都同意,在数组上迭代是一种相当古怪的方式?!;)我想看看
文件夹
数组是如何填充的可能会有所帮助。。。
var functionCall = isFolderNameUnique("one");

//alert results of function call
alert(functionCall);

function isFolderNameUnique(name) {//begin function

  name = name.toLowerCase();

    //if the name is not in the array 
    if(RESERVED_FOLDER_NAMES.indexOf(name) !== -1) {//begin if then else

        //return false
        return false;
    }
    else{

        //return true
        return true;

    }//end if then else

}//end function