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