isArray()
: 배열 여부 반환, 배열이면 true 아니면 false 반환indexOf()
: 지정한 값에 일치하는 엘리먼트 인덱스 반환lastIndexOf()
: indexOf()와 같으며, 마지막 인덱스 반환forEach()
: 배열을 반복하면서 콜백함수 실행every()
: 반환값이 false일 때까지 콜백 함수 실행some()
: 반환값이 true일 때까지 콜백 함수 실행filter()
: 콜백 함수에서 true를 반환하는 엘리먼트 반환map()
: 콜백 함수에서 반환한 값을 새로운 배열로 반환reduce()
: 콜백 함수의 반환 값을 파라미터 값으로 사용reduceRight()
: reduce()와 같지만 배열의 끝에서 앞으로 진행console.log(Array.isArray([1,2]);//true
console.log(Array.isArray(123));//false
isArray() 함수가 필요한 이유
console.log(typeof {a: 1});//object
console.log(typeof [1, 2]);//object --- (1)
⇒ (1): typeof 연산자로 데이터 타입을 구할 경우 둘 다 object를 반환합니다. 그렇기에 데이터 타입에서 배열 여부를 체크하는게 typeof로는 불가능합니다. 그렇기에 Array.isArray() 를 이용합니다.
파라미터 값과 같은 엘리먼트의 인덱스를 찾아 반환을 합니다. 왼쪽에서 오른쪽으로 검색을 하면서 값이 같은 엘리먼트가 있으면 해당 엘리먼트의 인덱스를 반환하며 검색을 종료합니다.
데이터 타입까지 체크하며 두 번째 파라미터의 인덱스부터 검색합니다.
var arr = [1, 2, 5, 2, 5];
console.log(arr.indexOf(5));//2
console.log(arr.indexOf("5"));//-1
console.log(arr.indexOf(5, 3));//4
String과 Array의 indexOf()차이
console.log("ABCBC".indexOf("C", -2));//2 ---(1)
var list = ["A", "B", "C", "B", "C"];
console.log(list.indexOf("C", -2));//4 ---(2)
⇒(1): String Object는 음수일 경우 0으로 간주하여 처음부터 검색합니다.
⇒(2): Array Object는 음수에 length를 더해 시작 인덱스로 사용하기에 -2 + length(5) = 3
이 되어 실질적으로는 list.indexOf("C", 3);이되어 4번 인덱스를 반환합니다.