Arrayに書き込み可能な有用な関数「slice」
6512 ワード
Array.prototype.slice()
mdn定義
"The slice() method returns a shallow copy of a portion of an array into a new array object selected from start to end (end not included) where start and end represent the index of items in that array. The original array will not be modified."
=>slice()メソッドは、既存の配列の一部をコピーすることによって、既存の配列の開始からend(endは含まない)までの選択項目を含む新しい配列を返します.既存のレイアウトは変更されません.
(startとendはプロジェクトのindexを表します.)
=>簡単に言えば、「アレイの一部をコピーした新しいアレイを返します.」考えてみればいい.
ps ) splice VS slice
spliceは既存の配列を変更して既存の配列を返し、sliceは既存の配列を保持し、新しい配列を返します.
https://velog.io/@yebb/JavaScript-Array%EC%97%90-%EC%93%B8-%EC%88%98-%EC%9E%88%EB%8A%94-%EC%9C%A0%EC%9A%A9%ED%95%9C-%ED%95%A8%EC%88%98-splice
Syntax
slice()
slice(start) //
slice(start, end)
start (optional)
end (optional)
sliceはendを含まずに抽出され、例えばslice(1,4)は、4番目のindexを除く1、2、3番目のindex項目を含む配列を返す.
endは負数も使用でき,この場合は配列の末尾からカウントダウンと考えられる.たとえば、slice(2,-1)は、配列の2番目のインデックスから始まり、配列の最後のインデックスから1つを除く項目に抽出された配列を返します.
endが配列の長さよりも省略されたり大きくなったりすると、sliceは配列の末尾に抽出されます.
📌はい。
let fruits = ['🍌','🍋','🍎'];
//Q. start와 end 모두 지정하지 않으면?
const fruits0 = fruits.slice();
console.log(fruits0); //output: ['🍌', '🍋', '🍎']
//-> start가 없으므로 0번 index부터 시작하고 end도 없으므로 배열의 끝까지 추출된 배열을 반환한다.
//Q. 바나나와 레몬만 담긴 새로운 배열을 만들고 싶다면?
//방법 1)
const fruits1 = fruits.slice(0,2);
console.log(fruits1); //output: ['🍌', '🍋']
//방법 2)
const fruits2 = fruits.slice(0,-1);
console.log(fruits2); //output: ['🍌', '🍋']
//Q. 사과만 담긴 배열을 만들고 싶다면?
//방법 1)
const fruits3 = fruits.slice(-1);
console.log(fruits3); //output: ['🍎']
//방법 2)
const fruits4 = fruits.slice(2);
console.log(fruits4); //output: ['🍎']
リファレンスhttps://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
Reference
この問題について(Arrayに書き込み可能な有用な関数「slice」), 我々は、より多くの情報をここで見つけました https://velog.io/@yebb/JavaScript-Array에-쓸-수-있는-유용한-함수-sliceテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol