(Javascript) findIndex()와 indexOf()의 차이점

공통점

JavaScript에서 findIndex() 및 indexOf()는 둘 다 배열에서 특정 값을 찾기 위한 메서드입니다.

그러나 둘 사이에는 몇 가지 중요한 차이점이 있습니다.

차이점

반환 값의 차이

findIndex(): 찾고 있는 값을 찾으면 요소의 인덱스를 반환합니다. 찾지 못하면 -1이 반환됩니다.
indexOf(): 찾으려는 값이 있으면 해당 값의 첫 번째 인덱스를 반환하고 그렇지 않으면 -1을 반환합니다.

비교 방법의 차이

findIndex(): 배열의 각 요소에 대해 콜백 함수를 실행하고, 콜백 함수의 반환 값이 true인 첫 번째 요소의 인덱스를 반환합니다. 즉, 사용자 정의 비교 논리를 콜백 함수에 적용할 수 있습니다.
indexOf(): 엄격한(===) 비교를 통해 주어진 값과 배열의 요소를 찾는다. 값 유형과 값이 모두 일치하고 인덱스를 반환하는 요소를 찾습니다.

사용 환경의 차이

findIndex(): ECMAScript 2015(ES6)에서 도입된 방식으로 브라우저 및 일부 환경에서 지원하지 않을 수 있습니다. 이 경우 polyfill을 사용하여 지원할 수 있습니다.
indexOf(): 이 방식은 ES5부터 도입되었으며 대부분의 브라우저와 환경에서 지원됩니다.

사용법의 차이

findIndex(): Array.prototype.findIndex() 양식은 배열 방식으로 사용됩니다. 배열 객체의 메소드로 호출되기 때문에 배열 대상으로 바로 사용할 수 있습니다.
indexOf(): Array.prototype.indexOf() 양식은 배열 방식으로 사용됩니다. 배열 객체의 메소드로 호출되기 때문에 배열 대상으로 바로 사용할 수 있습니다.

결론

따라서, findIndex()보다 유연한 비교 논리를 적용할 수 있고, ES6 이후 환경에서 사용할 수 있으며, 배열 메서드로 호출하여 배열에서 직접 사용할 수 있습니다. 반대편에 indexOf()간단한 값 순회에 적합하고 ES5 이상의 환경에서 지원되며 배열에서 메서드로 호출되어 배열에서 직접 사용할 수 있습니다.