배열의 첫 번째와 마지막 요소를 제거하려면


102

배열에서 첫 번째와 마지막 요소를 제거하는 방법은 무엇입니까?

예를 들면 :

var fruits = ["Banana", "Orange", "Apple", "Mango"];

예상 출력 배열 :

["Orange", "Apple"]

9
이것은 w3schools에 대한 링크를 만들기위한 '소프트 볼'처럼 보이며 동일한 배열 요소도 사용했습니다. ;-)
Myster 2012-06-11

답변:


142
fruits.shift();  // Removes the first element from an array and returns only that element.
fruits.pop();    // Removes the last element from an array and returns only that element. 

배열에 대한 모든 방법을 참조하십시오.


그것은 jQuery를 UI에 쉽게myArray.effect( "transfer", { item: 'first&&last', to: bin});
iConnor

3
친애하는 downvoters, 당신은 .. 이렇게 대답 뭐가 잘못 설명하는 주석을 추가하시기 바랍니다 downvotes 도움이 될 수도 있습니다

3
이 제거 만 반환합니다 (첫 번째 또는 마지막) 요소의 값 남아 있지 배열
Jubin 파텔

@RC. 기능의 실제 작업에 대해 사용자에게 알리고 싶습니다. 나는 당신의 대답에 대해 질문하고 있습니다.
Jubin Patel 2015

2
사용자와 마찬가지로이 함수를 작성하는 것과 동일하게 사용하면 제거 요소로 올바르게 작동하지만 사용자가 작성 return fruits.shift()하면 첫 번째 요소 만 반환 한 다음 배열에서 제거됩니다.
Jubin Patel 2015

79

1 레벨 전체 복사본을 만듭니다.

fruits.slice(1, -1)

원래 배열을 놓으십시오.

철자 오류를 지적 해 주신 @Tim에게 감사드립니다.


1
나는 당신 slice()splice().
Tim Down

71
과일을 자르는 것이 과일을 터뜨 리거나 옮기는 것보다 훨씬 낫습니다.
pettys

2
redux, 기능적 javscript 및 불변의 인기가 증가함에 따라이 답변이 훨씬 더 좋습니다
nkint

17

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var newFruits = fruits.slice(1, -1);
console.log(newFruits); //  ["Orange", "Apple"];

여기서 -1은 배열의 마지막 요소를 나타내고 1은 두 번째 요소를 나타냅니다.


또는 fruits = fruits.slice(1,-1);새 변수를 만들 필요가없는 경우 에만 가능합니다.
Hastig Zusammenstellen

9

스플 라이스 방식을 사용합니다.

fruits.splice(0, 1); // Removes first array element

var lastElementIndex = fruits.length-1; // Gets last element index

fruits.splice(lastElementIndex, 1); // Removes last array element

마지막 요소를 제거하려면 다음과 같이 할 수도 있습니다.

fruits.splice(-1, 1);

참조 배열에서 마지막 항목을 제거 그것에 대한 자세한 설명을 볼 수 있습니다.


4

push() 배열 끝에 새 요소를 추가합니다.
pop()배열의 끝에서 요소를 제거합니다.

unshift() 배열의 시작 부분에 새 요소를 추가합니다.
shift()배열의 시작 부분에서 요소를 제거합니다.

배열에서 첫 번째 요소를 제거하려면 배열 arr에서 arr.shift()
마지막 요소를 제거하려면 다음을 arr사용하십시오.arr.pop()


2

Array.prototype.reduce ()를 사용할 수 있습니다. .

암호:

const fruits = ['Banana', 'Orange', 'Apple', 'Mango'],
      result = fruits.reduce((a, c, i, array) => 0 === i || array.length - 1 === i ? a : [...a, c], []);

console.log(result);


첫 번째 항목과 마지막 항목을 제거하기 위해 축소하는 것을 보는 것이 좋습니다!
Mohan Ram

1

배열에서 요소를 제거하려면 다음을 수행하십시오.

let array_splited = [].split('/');
array_splited.pop()
array_splited.join('/')

1

이것은 lodash _.tail_.dropRight다음 으로 수행 할 수 있습니다 .

var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(_.dropRight(_.tail(fruits)));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>


0
var resident_array =  ["RC_FRONT", "RC_BACK", "RC_BACK"];
var remove_item = "RC_FRONT";
resident_array = $.grep(resident_array, function(value) {
            return value != remove_item;
    });
resident_array = ["RC_BACK", "RC_BACK"];

배열에서 첫 번째 요소를 제거합니다.
vikas pal

0

list라는 배열이 있다고 가정합니다. 클로우 () 함수는 모두 추가 및 시작 또는 끝에서 또는 인덱스가 될 수있는 특정 인덱스 IE에서 해당 어레이 아이템을 제거하는데 사용될 수있다. 반대로 배열의 첫 번째 항목과 마지막 항목 만 제거 할 수있는 또 다른 함수 이름 shift ()pop () 이 있습니다.

이것은 배열의 첫 번째 요소 만 제거 할 수있는 Shift 함수입니다.

var item = [ 1,1,2,3,5,8,13,21,34 ]; // say you have this number series 
item.shift(); // [ 1,2,3,5,8,13,21,34 ];

Pop 함수는 배열의 마지막 인덱스에서 항목을 제거합니다.

item.pop(); // [ 1,2,3,5,8,13,21 ];

이제 모든 인덱스에서 항목을 제거 할 수있는 스플 라이스 기능이 제공됩니다.

item.slice(0,1); // [ 2,3,5,8,13,21 ] removes the first object
item.slice(item.length-1,1); // [ 2,3,5,8,13 ] removes the last object 

slice 함수는 두 개의 매개 변수 ( 시작할 인덱스 , 이동할 단계 수) 받습니다 .


-1

첫 번째 요소 제거에 Fruits.shift () 메서드를 사용했습니다. 마지막 요소에 사용 된 Fruits.pop () 메서드는 버튼 클릭을 사용한 경우 하나씩 제거합니다. Fruits.slice (시작 위치, 요소 삭제) 중간 시작에서 요소 제거를 위해 slice 메서드도 사용했습니다.


1
이것을 읽고 올바르게 대답의 형식을 meta.stackexchange.com/questions/22186/...
isuruAb

-1

배열의 첫 번째와 마지막 요소를 제거하려면 사용되는 배열, 즉 방법 내장 shift()pop()(가) fruits.shift()동안 "바나나"와 같은 배열의 첫 번째 요소를 얻을 fruits.pop()"망고"와 같은 배열의 마지막 요소를 얻을. 그래서 배열의 나머지 요소는["Orange", "Apple"]


2
귀하가 제공 한 답변은이 질문에 이미 존재합니다 : 여기여기 . 더 많은 설명이 필요하다고 생각되면 만족스럽지 않은 답변 아래에 댓글을 남겨주세요.
Skandix

1
코드 형식을 지정하면 도움이됩니다 ( meta.stackexchange.com/questions/22186/… )! 또한이 답변은 다른 답변과 동일 해 보입니다 (예 : stackoverflow.com/a/43327999/608312 ).
Jake Lee

저명한 @JakeSteam
오코 예 chisom
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.