2014-12-11 5 views
-2

폴더 이름이 고유한지 확인하려고합니다. 이미 존재하는 이름을 넣으면 올바르게 작동하지만, 존재하지 않는 이름을 넣으면 충돌합니다.자바 스크립트가 이름이 이미 존재하는지 확인합니다.

// 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; 
} 

은 당신이 당신의 전체 자바 스크립트 코드의 배열이나 배열의 조합 객체를 사용하는 경우 내가 아니다

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

VAR I = -1 folders.length // 그 첫 번째 루프에서 매우'그동안 조건에서 i'를 감분된다 – InferOn

+0

@InvernoMuto' i는 실제로 'folders.length - 1'과 같아야합니다. – Christoph

+1

"폴더"목록에서 "RESERVED_FOLDER_NAMES"를 확인하는 것과 같은 방식으로 "폴더"목록을 확인하지 않으시겠습니까? * 편집 * 목록 – Pointy

답변

1

으로 if(folders[i].name.toLowerCase()에서 충돌하지만 여기서 일하는 대안 솔루션입니다.

자바 스크립트 코드 (jsfiddle 예 : http://jsfiddle.net/qeyahxy2/5/

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 
관련 문제