[javascript] 배열에서 마지막 항목 제거

다음 배열이 있습니다.

var arr = [1,0,2];

마지막 요소 즉 2를 제거하고 싶습니다.

사용 arr.slice(-1);했지만 값을 제거하지는 않습니다.



답변

스플 라이스 사용 (인덱스, howmany)

arr.splice(-1,1)


답변

JavaScript 규칙에 따른 Array.prototype.pop ()

let fruit = ['apple', 'orange', 'banana', 'tomato'];
let popped = fruit.pop();

console.log(popped); // "tomato"
console.log(fruit); // ["apple", "orange", "banana"]


답변

다음 .slice()과 같은 방법 으로이 작업을 수행 할 수 있습니다 .

arr.slice(0, -1);    // returns [1,0]

데모는 다음과 같습니다.

var arr = [1, 0, 2];
var newArr = arr.slice(0, -1);    // returns [1,0]

console.log(newArr);
$('#div1').text('[' + arr + ']');
$('#div2').text('[' + newArr + ']');
<script src="http://code.jquery.com/jquery.min.js"></script>
<b>Original Array    : </b>
<div id="div1"></div>
<br/>
<b>After slice(0, -1): </b>
<div id="div2"></div>

대신에 :

arr.slice(-1);   // returns [2]

데모는 다음과 같습니다.

var arr = [1, 0, 2];
var newArr = arr.slice(-1);    // returns [2]

console.log(newArr);
$('#div1').text('[' + arr + ']');
$('#div2').text('[' + newArr + ']');
<script src="http://code.jquery.com/jquery.min.js"></script>
<b>Original Array    : </b>
<div id="div1"></div>
<br/>
<b>After slice(-1): </b>
<div id="div2"></div>

설명:-

이제 기본 구문 Array.prototype.slice()이나 간단한 slice()방법은 다음과 같습니다.

arr.slice([begin[, end]])

여기,

begin파라미터 배열 개시로부터의 추출에서 0 기반 인덱스이다. 우리가 다음과 같은 일을하면 위의 예를 기반으로 말하십시오.

arr.slice(0)    // returns [1,0,2]

위치 0부터 순서의 시작부터 모든 배열 요소를 반환합니다 [1,0,2]. 마찬가지로, 우리가

arr.slice(1)    // returns [0,2]

[0,2]0이 1 위치에 있고 그 이후의 모든 것이 있기 때문에 반환 됩니다. 이제는 -1시퀀스의 끝에서 오프셋을 나타내는 시작 매개 변수로 음수 인덱스를 전달했습니다 . 따라서 slice(-1)귀하의 경우 시퀀스에서 마지막 하나의 배열 요소를 추출합니다 2( 위의 데모에서 이미 본 것처럼 ).

이제 메소드 구문에서 end매개 변수에 대해 이야기 slice()하겠습니다. 다시 배열에서 추출이 끝나는 인덱스 (0부터 시작)입니다. 따라서 다음과 같은 배열이 있다고 가정 해 봅시다.

var arr = [1, 0, 2, 5, 3, 9];

2,5,3배열 의 요소 만 가져 오려고합니다 . 이제 2시퀀스의 시작 위치 는 2이며 마지막 요소 34입니다. 위치 5 이전에 요소를 가져와야하기 때문에 여기서 위치 5를 추출해야합니다. 그래서 우리는 slice()여기에 단순히 메소드 를 구현할 것입니다.

arr.slice(2, 5)    // returns [2,5,3]

귀하의 경우 -1종료 매개 변수로 구현 되었으므로 코드는

arr.slice(0, -1)   // returns [1,0]

음의 인덱스로, end시퀀스의 끝에서 오프셋을 나타냅니다. 따라서 slice(0,-1)시퀀스의 마지막 요소부터 마지막 ​​요소까지 첫 번째 요소를 추출합니다. 따라서 원하는 출력을 얻습니다. 우리는 또한 좋아할 수 있습니다

arr.slice(0, 2)    // returns [1,0]

우리는 같은 결과를 얻을 것입니다. 그러나 -1여기에서는 긴 배열에서도 구현하기가 쉬워졌습니다.

[0,2,3,1,2,9,3,6,3,9,1,0,2,9,0,1,1,2,3,4,7,9,1]

마지막 요소를 제거하려는 경우 여기에서 마지막 9의 위치를 ​​지정하고 계산하고 싶지 않습니다 arr.slice(0, 22). 그런 다음 여기에서 음의 색인 논리를 간단히 구현할 수 있습니다.

arr.slice(0, -1) // same result as arr.slice(0, 22)

그것이 도움이되기를 바랍니다!


답변

예를 들어 배우십시오 :

let array_1 = [1,2,3,4];
let array_2 = [1,2,3,4];
let array_3 = [1,2,3,4];

array_1.splice(-1,1)  // output --> [4]      array_1 = [1,2,3]
array_2.slice(0,-1);  // output --> [1,2,3]  array_2 = [1,2,3,4]
array_3.pop();        // output --> 4        array_3 = [1,2,3]


답변

slice원래 배열을 변경하지 않으므로이 작업을 수행해야합니다 .

arr = arr.slice(-1);

원래 배열을 변경하려면 다음을 사용할 수 있습니다 splice.

arr.splice(-1, 1);

또는 pop:

arr.pop();


답변

.pop()가장 ‘올바른’솔루션 이라고 생각 하지만 마지막 요소가 없으면 배열을 사용해야하기 때문에 때로는 작동하지 않을 수 있습니다 …

이 경우 다음을 사용하고 싶을 수도 있습니다. [1,2,3]

var arr = [1,2,3,4];
console.log(arr.splice(0,arr.length-1));

동안 .pop()돌아올 것이다 4:

var arr = [1,2,3,4];
console.log(arr.pop());

바람직하지 않을 수도 있습니다 …

시간이 절약되기를 바랍니다.


답변

그 기능, 설명이 있습니다 여기 있습니다 .

arr.pop();