본문 바로가기

Web[웹]/자바스크립트

Array 메서드 | #2-1 Immutable (불변성) 메서드

 

▼ 원본 배열이 변하는 메서드

 

[JavaScript] Array 메서드 | #1 원본 배열 자체를 수정하는 메서드

배열의 메서드를 사용하기 전에, 항상 배열의 요소 자체를 수정하는지, 그 사본을 반환하는 메서드인지 주의해야합니다. #1 원본 배열 자체를 수정하는 메서드 자주 사용하는 push(), pop(), shift(), u

opentogether.tistory.com


#2-1 Immutable (불변성) 메서드

"원본 배열을 수정하지않고, 새로운 배열 또는 값을 반환하는 메서드"

 

join()

-모든 배열의 요소를 연결해 하나의 문자열로 변환

 

arr.join(separator)

◾ separator: 배열의 각 요소를 구분할 문자열을 지정합니다. [Optional]

반환값: 배열의 모든 요소들을 연결한 하나의 문자열을 리턴합니다. 만약 배열의 길이가 0이라면, 빈 문자열을 리턴합니다.

요소가 undefined 또는 null이면 빈 문자열로 변환됩니다.

 

1
2
3
4
let greet = ["H""e""l""l""o"];
console.log(greet.join());     // "H,e,l,l,o"
console.log(greet.join(""));   // "Hello"
console.log(greet.join("+ ")); // "H+ e+ l+ l+ o"
cs

indexof()

- 문자열 인덱스 찾기 (정수 리턴)

 

arr.indexOf(searchElement, position)

searchElement: 찾고자 하는 배열의 요소를 적습니다.
position: searchElement를 찾기 시작하는 위치를 나타내는 인덱스 값입니다.
반환값: searchElement 중, 첫 번째로 나온 인덱스를 리턴합니다. 만약 찾을 수 없으면 '-1'을 리턴합니다.

 

1
2
3
4
5
let fruit = ["apple""banana""coconut""kiwi"];
 
console.log(fruit.indexOf("banana")); // 1
console.log(fruit.indexOf("kiwi"));   // 3
console.log(fruit.indexOf("cat"));    // -1 :: 없을 경우
cs

 


includes()

- 문자열 포함여부 확인하기 (Boolean 리턴 - Explorer 지원 X)

 

arr.includes(searchElement, position)

searchElement: 찾고자 하는 배열의 요소를 적습니다.

◾ position: searchElement를 찾기 시작하는 위치를 나타내는 인덱스 값입니다. 기본값은 0입니다. [Optional]

◾ 반환값: 배열 요소를 찾았을 경우 true, 찾지 못했을 경우 false를 리턴합니다.

 

1
2
3
4
5
let num = [123]
console.log(num.includes(2));     // true
console.log(num.includes(4));     // false
console.log(num.includes(33));  // false
console.log(num.includes(3-1)); // true
cs

 


slice()

- 배열 추출하기

 

 

arr.slice(begin, end)

begin: 추출 시작점에 대한 인덱스입니다. [Optional]
end: 추출 종료점에 대한 인덱스입니다. 해당 인덱스 전까지 추출합니다. [Optional]
반환값: 추출한 요소를 포함한 새로운 배열을 리턴합니다.
◾ end값이  배열의 길이보다 크다면, 배열 끝까지 추출합니다.
◾ end값이 생략되면, slice()는 배열의 끝까지 추출합니다.
◾ start값이 end값보다 크거나 같다면, 빈 배열을 추출합니다.

 
1
2
3
4
5
6
7
8
const color = ['red''blue''green''pink''white'];
console.log(color.slice(0));     // ["red", "blue", "green", "pink", "white"]
console.log(color.slice(2));     // ["green", "pink", "white"]
console.log(color.slice(24));  // ["green", "pink"]
console.log(color.slice(2100));// ["green", "pink", "white"]
console.log(color.slice(-34)); // ["green", "pink"]
console.log(color.slice(22));  // []
console.log(color.slice(42));  // []
cs

 

* 배열 복사하기

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/** 배열의 특성인 참조 타입으로 
 *  인해 원본값과 참조한 값이 같이 바뀜
 */
let arr1 = [1,2,3,4,5];
let arr2 = arr1;
arr2[0= 5;
console.log(arr1); // [5, 2, 3, 4, 5]
console.log(arr2); // [5, 2, 3, 4, 5]
console.log(arr1 === arr2); // true
 
/* slice()를 통해 원본값을 그대로 복사*/
let arr3 = [12345];
let arr4 = arr3.slice();
arr4[0= 5;
console.log(arr3); // [1, 2, 3, 4, 5]
console.log(arr4); // [5, 2, 3, 4, 5]
console.log(arr3 === arr4); // false
cs

toString()

- 배열을 문자열로 변환하기

 

arr.toString()

반환값: 배열을 표현하는 문자열을 리턴합니다.

 

1
2
let num = ["one"2"three"45"six"];
console.log(num.toString()); // "one,2,three,4,5,six"
cs