다음 배열이 있습니다.
var arr = [1,0,2];
마지막 요소 즉 2를 제거하고 싶습니다.
사용 arr.slice(-1);했지만 값을 제거하지는 않습니다.
arr.slice(0,-1)나를 위해 최고의 솔루션이었다
splice(), 두 번째 경우 : pop().
다음 배열이 있습니다.
var arr = [1,0,2];
마지막 요소 즉 2를 제거하고 싶습니다.
사용 arr.slice(-1);했지만 값을 제거하지는 않습니다.
arr.slice(0,-1)나를 위해 최고의 솔루션이었다
splice(), 두 번째 경우 : pop().
답변:
arr.splice(-1,1)
[1].splice(-1, 1)=>[1]
[0,1,2] -> [2]뒤에 남겨두고 [0,1]. 이 경우 [arr.pop()]트릭을 수행합니다.
array.pop()수정 변경됩니다 array동안 slice(0, -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이며 마지막 요소 3는 4입니다. 위치 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)
그것이 도움이되기를 바랍니다!
arr을 제외하는 새 배열을 반환합니다. 모질라의 문서에 따르면 : "slice () 메소드는 배열의 일부분에 대한 얕은 사본을 새로운 배열 객체로 반환합니다."
arr.slice(0, -1)가장 좋은 대답이다.
예를 들어 배우십시오 :
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]
.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());
바람직하지 않을 수도 있습니다 ...
시간이 절약되기를 바랍니다.
다음을 사용하여 두 가지 방법으로 할 수 있습니다 splice().
arr.splice(-1,1) arr.splice(arr.length-1,1) splice(position_to_start_deleting, how_many_data_to_delete) 두 개의 매개 변수를 사용합니다.
position_to_start_deleting: 삭제를 시작하는 0부터 시작하는 색인입니다.
how_many_data_to_delete: 표시된 인덱스에서 몇 개의 연속 데이터를 삭제해야합니까.
pop()as pop()를 사용하여 마지막 요소를 일부 배열에서 제거 할 수도 있습니다 .
사용하다arr.pop()
이 방법은 배열의 마지막 요소를 삭제하고 저장하는 데 도움이됩니다.
var sampleArray = [1,2,3,4];// Declaring the array
var lastElement = sampleArray.pop();//this command will remove the last element of `sampleArray` and stores in a variable called `lastElement` so that you can use it if required.
이제 결과는 다음과 같습니다
console.log(sampleArray); //This will give you [1,2,3]
console.log(lastElement); //this will give you 4
그 지적이의 가치는 slice모두 반환됩니다 새로운 배열을, 반면 .pop()및 .splice()돌연변이 것입니다 기존의 배열을.
연쇄 명령 스타일로 데이터 모음을 처리하는 것을 좋아한다면 실제로 slice 이와 같은 것을 입니다.
예를 들면 다음과 같습니다.
myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var newArrayOfThings = myArray
.filter(x => x > 5) // only bigly things
.slice(-1) // get rid of the last item
.map(x => `The number is: ${x}`);// map to a set of strings
"pop"으로 같은 종류의 작업을 수행하려면 훨씬 더 혼란스럽고 변수 관리가 필요할 수 있습니다 map.filter 등, 새로운 배열 등을하지 않습니다.
와 같은 종류이며 push배열 끝에 항목을 추가합니다. concat흐름을 계속 유지할 수 있기 때문에 더 좋을 수도 있습니다 .
myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var newArrayOfThings = myArray
.filter(x => x > 5) // only bigly things
.slice(-1) // get rid of the "10"
.concat([100]) // note with concat, you must pass an array
.map(x => `The number is: ${x}`) // map to a set of strings
Lodash하면 사용할 수 있습니다 dropRight을 당신이 제거 된 요소를 알고 상관하지 않는 경우 :
_.dropRight([1, 2, 3])
// => [1, 2]
_.dropRight([1, 2, 3], 2);
// => [1]
2019 ECMA5 솔루션 :
const new_arr = arr.reduce((d, i, idx, l) => idx < l.length - 1 ? [...d, i] : d, [])
비파괴 적이며 일반적인 단일 라이너이며 어레이 끝에 복사 및 붙여 넣기 만하면됩니다.
I would like to remove the last element . 원래 배열에서 파괴적 / 돌연변이 작업이 필요합니다.
당신이 있다고 말해 var arr = [1,0,2]
arr.splice(-1,1)당신에게 돌아 오는 array [1,0];동안 당신 arr.slice(-1,1)에게 돌아올 것입니다array [2];
마지막 항목을 제거하는 좋은 방법입니다.
if (arr != null && arr != undefined && arr.length > 0) {
arr.splice(arr.length - 1, 1);
}
다음과 같은 스플 라이스의 세부 사항 :
접속 (startIndex, 접속 수)
var stack = [1,2,3,4,5,6];
stack.reverse().shift();
stack.push(0);
출력은 Array [0,1,2,3,4,5] 입니다. 이를 통해 새로운 값을 입력 할 때와 동일한 양의 배열 요소를 유지할 수 있습니다.