배열이나 문자열에서 i번째 인덱스 내용을 삭제해야 하는 경우
1. 원본을 유지하면서, 삭제하는 방법
array 메소드 중, slice()를 사용하면, 원본을 유지하면서, 삭제된 새로운 배열을 생성할 수 있다.
1 2 3 4 5
| const arr = [1,2,3,4,5]; const newArr = [...arr.slice(0,3), ...arr.slice(4)]; // 3번째 인덱스 삭제
console.log(newArr); // [1,2,4,5] console.log(arr); // [1,2,3,4,5]
|
2. 원본을 변경하면서, 삭제하는 방법
array 메소드 중, splice()를 사용하면, 특정 요소를 삭제함으로써, 원본이 변경된 배열이 된다.
1 2 3
| const arr = [1,2,3,4,5]; arr.splice(3,1); // 3번 인덱스부터 1개를 삭제 console.log(arr); // [1,2,3,5]
|
배열이나 문자열에서 중복을 제거해야 할 때
Set을 사용해서 중복을 제거할 수 있다.(Set은 unique한 자료형만을 저장한다.)
1 2 3 4 5 6 7 8 9 10 11
| // 배열 const arr = [1, 3, 2, 9, 9, 1, 5, 1, 4, 5, 2]; console.log(new Set(arr)); // { 1, 3, 2, 9, 5, 4 } const newArr = [...new Set(arr)]; console.log(newArr); // [ 1, 3, 2, 9, 5, 4 ]
// 문자열 const str = "abcdacbe"; console.log(new Set(str)); // { 'a', 'b', 'c', 'd', 'e' } const newStr = [...new Set(str)].join(''); console.log(newStr); // "abcde"
|
배열이나 문자열에서 딱 1개만 있는 요소를 찾아야 할 경우
array 메소드 중, filter()와 indexOf()를 사용하면, 딱 1개만 있는 요소를 찾을 수 있다.
1 2 3 4 5 6 7 8 9
| // 배열 const arr = [3, 3, 3, 7, 3]; const filterArr = arr.filter( elem => arr.indexOf(elem) === arr.lastIndexOf(elem) ); console.log(filterArr); // [7]
// 문자열 const str = '33373'; const filterStr = str.split('').filter( elem => str.indexOf(elem) === str.lastIndexOf(elem) ); console.log(filterStr); // ['7']
|
배열에 규칙적인 연속된 값 할당해야할 경우
Array()와 fill()를 사용한다.
1 2 3 4
| const newArr = Array(5).fill(2); console.log(newArr); // [2, 2, 2, 2, 2] const newArr2 = Array(5).fill(1).map( (elem, i) => elem + i ); console.log(newArr2); // [1,2,3,4,5]
|
배열에 최대값/최소값을 찾아야 할 경우
Math.max(), Math.min()를 사용한다.
1 2 3 4 5 6 7 8 9
| // 최대값 const arr = [1, 2, 3]; const max = Math.max(...arr); // 3 console.log(max);
// 최소값 const arr = [1, 2, 3]; const min = Math.min(...arr); // 3 console.log(min);
|
지정된 숫자를 자신보다 작은, 가까운 정수로 내림해야 할 경우
Math.floor()를 사용한다.
1 2 3 4 5 6 7 8 9
| const floor1 = Math.floor(2.9); // 2 const floor2 = Math.floor(9.1); // 9 const floor3 = Math.floor(-1.9); // -2 const floor4 = Math.floor(-9.1); // -10
console.log(floor1); console.log(floor2); console.log(floor3); console.log(floor4);
|
지정된 숫자를 자신보다 큰, 가까운 정수로 올림해야 할 경우
Math.ceil()를 사용한다.
1 2 3 4 5
| const ceil1 = Math.ceil(1.1); // 2 const ceil2 = Math.ceil(-1.4); // -1
console.log(ceil1); console.log(ceil2);
|