FRONTEND/Javascript
자꾸 헷갈려서 빡쳐서 쓰는 글 (splice, split, slice)
1224minutes
2022. 7. 28. 02:15
sliceArray.prototype.slice()
array에 쓴다.
arr.slice(n,m)
여기서 n,m은 idx값.
m < arr.length : n부터 m-1개 리턴
m > arr.length : 끝까지
arr.slice(m)
m < arr.length : m부터 끝까지 리턴
m > arr.length일때는 빈 배열 리턴.
arr.slice(-m) : (마지막 idx - m)값의 idx로부터 끝까지 리턴
arr.slice(n,-m) : n부터 마지막 idx로부터 m개 빼고 리턴
arr.slice(-n, m) : (마지막 idx - m)값의 idx부터 m번째 idx까지 리턴
arr.slice(-n,-m) : (마지막 idx - m)값의 idx부터 / n부터 마지막 idx로부터 m개 빼고 리턴
※음수 매커니즘은 splice도 동일.
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2));
// expected output: Array ["camel", "duck", "elephant"]
console.log(animals.slice(2, 4));
// expected output: Array ["camel", "duck"]
console.log(animals.slice(1, 5));
// expected output: Array ["bison", "camel", "duck", "elephant"]
console.log(animals.slice(-2));
// expected output: Array ["duck", "elephant"]
console.log(animals.slice(2, -1));
// expected output: Array ["camel", "duck"]
console.log(animals.slice());
// expected output: Array ["ant", "bison", "camel", "duck", "elephant"]
Array.prototype.splice()
array에 쓰며 요소 삭제 및 추가. 기존 배열 변경한다.
array.splice( 배열 변경 시작할 idx, 배열에서 삭제할 요소의 개수,추가할 요소)
array.splice 했을 때 나오는 값은 [삭제한 요소]
const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "June"]
months.splice(4, 1, 'May');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "May"]
String.prototype.split()
문자열에 사용. 어떤 기준으로 문자열을 분할하여 배열로 리턴
str.split(분할하고자 하는 문자열, 몇 개 리턴할건지 갯수.적지 않으면 전체 리턴)
const str = 'The quick brown fox jumps over the lazy dog.';
const words = str.split(' ');
console.log(words[3]);
// expected output: "fox"
const chars = str.split('');
console.log(chars[8]);
// expected output: "k"
const strCopy = str.split();
console.log(strCopy);
// expected output: Array ["The quick brown fox jumps over the lazy dog."]