배열 (2) 에 이어서 배열을 사용할떄 유용한 메서드를 알아보겠습니다.
reverse 메서드는 기존의 배열의 요소들의 위치를 역순으로 정렬해주는 메서드 입니다. 코드로 살펴보겠습니다.
let arr = [1,2,3,4,5,6];
arr.reverse();
console.log(arr); // [6, 5, 4, 3, 2, 1]
위와 같이 reverse 메서드를 호출하면 arr 배열의 요소들의 위치가 역순으로 정렬된것을 확인할 수 있습니다.
split 메서드는 문자열을 구분자를 기준으로 나눠서 배열에 저장할때 사용하면 유용한 메서드 입니다. 코드로 살펴보겠습니다.
let arr = "hello world! hava a nice day!".split(" ");
console.log(arr);
// ['hello', 'world!', 'hava', 'a', 'nice', 'day!']
위의 코드에서는 공백을 기준으로 split 메서드를 사용하였습니다. 공백을 기준으로 문자를 나눠 arr 배열에 저장한것을 확인할 수 있습니다.
let arr = "helloworld!".split("");
console.log(arr);
// ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd', '!']
요번에는 "" 빈 문자열을 구분자로 넣어주고 split 메서드를 사용하였습니다. 빈문자열을 구분자로 넣어주면 문자를 한개씩 나눠 배열에 저장한것을 확인할 수 있습니다.
join 메서드는 split 메서드와 반대의 기능을 하는 메서드 입니다. 배열의 모든 요소를 구분자를 기준으로 하나의 문자열로 만들어 줍니다.
코드로 살펴보겠습니다.
let arr = ['hello', 'world!', 'hava', 'a', 'nice', 'day!'];
arr.join(",");
console.log(arr);
// hello,world!,hava,a,nice,day!
위의 코드에서 join 메서드는 arr 배열의 모든 요소들을 ","을 기준으로 하나의 문자열로 만들어 주는것을 확인할 수 있습니다.
reduce 메서드는 하나의 값만 반환 합니다. 배열의 모든 요소들이 함수에 적용되고 적용 결과는 다음 요소가 적용되는 함수 호출시 적용 됩니다.
코드로 살펴보겠습니다.
let arr = [1,2,3,4,5,6];
let result = arr.reduce(function(a,item){
return a+item;
}, 0);
console.log(result) // 21
위의 코드는 arr 배열의 모든 요소들을 모두 더해서 결과값을 반환해주는 코드 입니다.
동작 원리를 간단하게 설명하자면
1. 초기값 0 이 a에 할당되고 item에는 배열의 첫번째 값 1이 할당되어 함수가 호출 됩니다. 그러면 함수의 반환 값으로 1이 반환 됩니다.
2. 반환값이 a에 할당되고 배열의 두번째 값 2가 할당되어 함수가 호출 됩니다. 그러면 함수의 반환 값으로 3이 반환 됩니다.
위의 과정을 배열의 모든 요소가 item 에 할당되어 호출될때까지 반복 되고 마지막 함수 호출의 결과가 result 에 저장 됩니다.
만약 초기값을 주지 않는다면 a에 첫번째 배열의 요소가 자동으로 할당되고 item 에는 두번째 배열의 요소가 할당되어 두번째 요소부터 함수가 호출 됩니다.
하지만 주의해야할 점은 배열이 빈 문자열일때 초기값이 없으면 에러가 발생한다는 것 입니다. 배열이 빈 배열이고 초기값이 있었다면 에러가 발생하지 않고 초기값이 결과 값으로 반환 됩니다.
reduceRight 메서드는 위의 reduce 메서드와 같은 기능을 합니다. 다름점은 배열의 오른쪽 요소부터 연산을 진행한다는 점 입니다.
isArray 메서드는 배열인지 아닌지를 판단해주는 메서드 입니다. 배열은 객체이기 때문에 typeof 를 사용한다고 해도 이것이 객체인지 배열인지 알수가 없습니다. isArray 메서드를 사용하면 배열이면 true 아니면 false 를 반환해줘 배열이 맞는지 확인할 수 있습니다.