>source

그래서 기본적으로 코드에서 if 문을 사용해야하는 이유에 대해 명확하게 설명하면됩니다. 다른 코드가 필요한 이유를 이해하고 있지만 현재는 배우고 있습니다.

const todos = [{
    text: 'Order cat food',
    completed: true
}, {
    text: 'Clean kitchen',
    completed: false 
}, { 
    text: 'Buy food',
    completed: true 
}, {
    text: 'Do work',
    completed: false 
}, {
    text: 'exercise',
    completed: true 
}]
const deleteTodo = function (todos, todoText){ 
    const index = todos.findIndex(function (todo){
        return todo.text.toLowerCase() === todoText.toLowerCase()
    })
    if (index > -1) {
        todos.splice(index, 1)
    }
}
deleteTodo(todos, 'Buy food') 
console.log(todos)


  • 답변 # 1

    이 줄 if (index > -1) {  배열에서 요소의 색인을 확인하고 있습니다. 이 요소가 배열에 존재하면 0 또는 0보다 큰 숫자를 리턴합니다. -1  요소가 배열에 존재하지 않음을 의미합니다. 항상 요소가 배열에 있는지 확인합니다.

    따라서 요소가 배열에 있으면 splice  적용되고 removed 를 반환합니다  항목이 배열에 없으면 -1의 인덱스로 스플 라이스를 수행하면 오류가 발생합니다.

  • 답변 # 2

    deleteTodo  함수는 text 를 기반으로 할 일 목록에서 항목을 제거합니다.  그것에 제공했다. 통과 한 text  존재하지 않으면 splice 를 수행해서는 안됩니다.  할 일의 배열에.

    findIndex 참고   0 에서 시작하는 배열 인덱스를 반환합니다.   length-1 로  텍스트가 배열에 존재하면 -1 .

    예 :-

    deleteTodo('eat food');
    
    

    eat food 이후 위의 배열을 변경해서는 안됩니다.   todos 에서 텍스트를 찾을 수 없습니다  배열.

    위의 진술에 대해 스플 라이스를 수행하면 다음과 같은 결과를 초래할 수 있습니다.

    todos.splice(-1,1)
    
    

    todos 의 마지막 항목을 제거하는

      - 이후 배열 (빼기)는 배열 끝의 색인을 나타냅니다.

  • 이전 ibm cloud - IBM Watson Assistant에 선택란을 삽입하는 방법
  • 다음 c# - MemoryStream에서 FTP 서버로 파일을 업로드하는 방법