programing

인덱스 뒤에 있는 모든 항목 제거

i4 2023. 9. 8. 21:10
반응형

인덱스 뒤에 있는 모든 항목 제거

배열이 있습니다.

array = ['mario','luigi','kong']

인덱스 이전의 모든 항목을 제거하기 위해 스플라이스 함수를 호출합니다.

array.splice(1) //-> ['luigi','kong']

단지 스플라이스와 비슷한 기능으로 인덱스 후에 모든 아이템을 제거할 수 있는 기능이 있는지 궁금합니다.

의사 코드

array.mirrorsplice(1) //-> ['mario','luigi']

변형보다 빠른 배열의 새 크기를 설정하는 데 사용합니다.

var array = ['mario','luigi','kong', 1, 3, 6, 8];
array.length=2;
alert(array); // shows "mario,luigi";

왜 더 빠른 거지?제거된 모든 항목을 포함하는 새 배열을 생성해야 하는 반면 아무것도 생성하지 않고 새 배열 대신 숫자를 "반환"하기 때문입니다.

사용법을 다루기 위해 배열의 끝을 잘라낼 수 있는 큰 숫자와 함께 음의 인덱스를 입력할 수 있습니다.

var array = ['mario','luigi','kong'];
array.splice(-1, 9e9); 
alert(array); // shows "mario,luigi";

@dandavis가 말한 것처럼 배열 길이에 더 짧은 값을 할당하는 것이 배열에서 후행 요소를 제거하는 가장 빠르고 간단한 방법이지만, 를 슬라이스라고 하는 스플라이스와 같은 유사한 방법을 사용할 수도 있습니다.다음과 같습니다.

array = ['mario', 'luigi', 'kong'];

array = array.slice(0, 2); //Need to assign it to the same or another variable

console.log(array); //["mario", "luigi"]

보시다시피 반환된 값을 저장해야 합니다.slice방법.'왜'를 이해하기 위해서는 다음과 같은 주요한 차이점이 있습니다.slice그리고.splice방법:

  • splice()method는 배열에서 제거된 항목을 반환합니다.slice()method는 배열에서 선택한 요소를 새 배열 개체로 반환합니다.
  • splice()method는 원래 배열을 변경합니다.slice()메서드는 원래 배열을 변경하지 않습니다.

색인 뒤에 있는 모든 항목제거하려면:

var array = ['mario','luigi','kong'],
index = 1; // your index here
array = array.splice(index + 1, array.length - (index + 1) );
// 3 - (1+1) = 1
// 1 is the remaining number of element(s) in array
// hence, splice 1 after index

결과:

['mario', 'luigi']

인덱스에서 스플라이스 제거가 시작되기 때문에 +1을 하셔야 합니다.

당신이 사용법을 잘못 이해한 것 같습니다.Array.prototype.splice(). 이미 요청한 대로(인덱스 후에 모든 것을 제거하고, 수정을 위해 아래 단락을 읽음) 수행하고, 삭제된 값을 반환합니다.반송된 값을 어레이의 현재 값으로 착각하신 것 같습니다.

Array.prototype.splice()그러나 는 제공된 인덱스 값도 제거합니다. 이 값은 기본적으로 배열의 길이를 설정하는 것과 같습니다.그래서 이렇게 하면.array.splice(2), 길이를 2로 설정하고 인덱스 2 이후의 값을 포함한 모든 것이 삭제됩니다.이것은 어레이의 현재 길이가 에 제공된 첫번째 파라미터보다 더 큰 경우에 제공됩니다.Array.prototype.splice().

예를 들어,

const array = ['mario','luigi','kong'];
const deletedItem = array.splice(1);
console.log(array); // ['mario']
console.log(deletedItem); // ['luigi','kong']

자세한 내용은 MDN 문서를 참조하십시오.

스플라이스를 사용하시면 됩니다.데모를 보여드리겠습니다.

var array = ['mario','luigi','kong']

인덱스 뒤의 모든 요소를 제거하려면:

var removedElement = array.splice(index, array.length)

removedElement에는 배열에서 제거된 요소 목록이 표시됩니다.

예:

let index = 2;
var removedElement = array.splice(2, array.length); 
removedElement = ["kong"];
array = ["mario", "luigi"];

이 작업을 수행하려면 .slice를 사용할 수 있습니다.

예제(배열에서 처음 1000개 항목을 제외한 모든 항목 제거):

originalArray = originalArray.slice(0, 1000)

언급URL : https://stackoverflow.com/questions/26568536/remove-all-items-after-an-index

반응형