기존 배열을 수정하지 않고 다른 모습으로 가공한 새로운 문자열 or 배열로 반환한다.
종류
배열의 모든 요소 값을 문자열로 변경하고 인수로 받은 문자로 연결해서 문자열을 반환한다.
let a = ["A", "B", "C"];
a.join();
a.join("/");
결과
"A,B,C" // default
"A/B/C" // a.join("/");
"string" // typeof a.join("/");
인수로 받은 값을 그 배열의 요소로 추가해서 새로운 배열을 생성한다.
- 기본 형태
let b = [item ...];
b.concat(item, item, ... items);
let b = ["A", "B", "C"];
b.concat(["1", "2"], "Z", "Y", true, 10);
결과
(9) ["A", "B", "C", "1", "2", "Z", "Y", true, 10] // b.concat
(3) ["A", "B", "C"] // 기존 배열 b를 수정하지 않음
- 인수로 객체의 참조를 받을 때
let bb = ["A", "B", "C"];
let cc = ["100", "200"];
bb.concat(["1", "2"], "Z", "Y", cc);
cc = ["AA", "BB"]; // cc 값 변경
bb.concat(["1", "2"], "Z", "Y", cc);
결과
(9) ["A", "B", "C", "1", "2", "Z", "Y", "100", "200"]
(9) ["A", "B", "C", "1", "2", "Z", "Y", "AA", "BB"] // cc 값 변경
- 인수로 받은 배열 안에 또다른 배열을 갖고 있을 때
let bbb = ["A", "B", "C"];
bbb.concat("D", [["E", "F", "G"]]);
결과
(5) ["A", "B", "C", "D", Array(3)] // Array(3) => ["E", "F", "G"]
배열의 일부 요소를 제거하여 그것으로 새로운 배열을 반환한다. 제거한 요소가 없을 경우 빈 배열을 반환한다.
- 기본 형태
let d = [item, item, ...];
d.slice(begin, end);
let d = ["A", "B", "C", "D", "E", "F"];
d.slice(1, 4);
d.slice(1, -1);
d.slice(-2, -3);
d.slice(-3, -2);
결과
(3)["B", "C", "D"]
(4) ["B", "C", "D", "E"]
[] // 제거된 요소가 없으니 빈 배열
["D"]
배열 안에서 인수로 지정한 값을 검색해서 가장 먼저 찾은 요소의 인덱스를 반환한다.
기본 형태
let e = [item, item ...];
e.indexOf("value", start);
let e = ["A", "A", "B", "C", "D", "E", "F"];
e.indexOf("A");
e.lastIndexOf("A");
문자열 A를 검색하려고 했는데 배열 e에는 A가 두 개가 존재한다. 이때 indexOf와 lastIndexOf를 사용했을 때의 인덱스 위치는 다르게 된다.
결과
0 // indexOf
1 // lastIndexOf
lastIndexOf와 동일한 인덱스를 반환하고 싶다면 아래와 같이 시작 위치를 지정하면 된다.
e.indexOf("A", 1);
결과
1
배열 길이를 초과하는 값을 시작위치로 설정
e.indexOf("A", 7);
결과
-1
배열의 요소를 문자열로 변환하여 쉼표로 연결한 문자열을 반환한다.
let date = new Date();
let a = ["A", "B", "C", date, ["AA", "BB"]];
a.toString();
a.toLocaleString();
a.join();
결과
"A,B,C,Thu Sep 10 2020 12:10:29 GMT+0900 (대한민국 표준시),AA,BB" // a.toString();
"A,B,C,Thu Sep 10 2020 12:10:44 GMT+0900 (대한민국 표준시),AA,BB" // a.join();
"A,B,C,2020. 9. 10. 오후 12:10:38,AA,BB" // a.toLocaleString();
[JavaScript] 메서드 체인 (0) | 2020.09.11 |
---|---|
[JavaScript] 배열의 반복 메서드 (0) | 2020.09.10 |
[JavaScript] 자바스크립트 async, await를 통한 비동기 처리 다루기 (0) | 2020.09.10 |
[JavaScript] 자바스크립트 비동기 처리와 AJAX, promise(프로미스) (0) | 2020.09.07 |
[JavaScript] 자바스크립트 콜백함수(callback function) (0) | 2020.09.03 |