Programming

indexOf와 배열의 findIndex 함수의 차이점

procodes 2020. 8. 26. 19:39
반응형

indexOf와 배열의 findIndex 함수의 차이점


두 함수 indexOf의 차이점과 배열에서 Index 찾기 사이에 혼란 스럽습니다.

문서에 따르면

findIndex-predicate가 true 인 배열에서 첫 번째 요소의 인덱스를 반환하고 그렇지 않으면 -1을 반환합니다.

indexOf-배열에서 값이 처음 나타나는 인덱스를 반환합니다.


주요 차이점은 다음 기능의 매개 변수입니다.

  • Array.prototype.indexOf()첫 번째 매개 변수로 예상합니다 . 따라서 기본 유형 (문자열, 숫자 또는 부울)의 배열에서 인덱스를 찾는 것이 좋습니다 .

  • Array.prototype.findIndex()기대 콜백 첫번째 파라미터로한다. 원시 유형이 아닌 배열 (예 : 객체)의 인덱스가 필요하거나 찾기 조건이 단순한 값보다 더 복잡한 경우이 옵션을 사용하십시오.

두 경우의 예는 링크를 참조하십시오.


FindIndex는 조건 자와 일치하는 첫 번째 요소를 찾으려는 경우 유용합니다. W3C의 예에서 고객의 나이가 18 세 이상이면 숫자와 일치 항목이 있습니다.

var ages = [3, 10, 18, 20];

function checkAdult(age) {
    return age >= 18;
}

console.log(ages.findIndex(checkAdult));

콘솔:

2

Array의 indexOf 함수로 정확한 요소 인덱스를 찾을 수 있지만 조건자를 전달할 수는 없습니다. 특정 요소를 찾으려면 더 빠릅니다.

var ages = [3, 10, 18, 20];
console.log(ages.indexOf(10));

보고:

1

인덱스 카운팅은 0에서 시작하므로 첫 번째 요소 인덱스는 0입니다.


주요 차이점은 다음 기능의 매개 변수입니다.

-> Array.prototype.indexOf () :

   var fruits = ["Banana", "Orange", "Apple", "Mango"];
   var a = fruits.indexOf("Apple");
   The result of a will be: 2

-> Array.prototype.findIndex () :

       var ages = [3, 10, 18, 20];

       function checkAdult(age) {
        return age >= 18;
       }

       function myFunction() {
         document.getElementById("demo").innerHTML = 
         ages.findIndex(checkAdult);
       }

       The result will be: 2

다음을 사용할 수도 있습니다 includes.

[1, 2, 3].includes(2);      // true
[1, 2, 3].includes(4);      // false
[1, 2, 3].includes(3, 3);   // false

그러나 나는 indexOf방법을 선호합니다 .

var vals = [ "foo", "bar", 42, "baz" ];
if (~vals.indexOf( 42 )) {
  // found it!
}

Another difference is that with findIndex() the user can apply some function and find the element in the array which passes the test.

But the same is not true with indexOf() operator. A user can just check whether the particular element exists in the array or not.

참고URL : https://stackoverflow.com/questions/41443029/difference-between-indexof-and-findindex-function-of-array

반응형