[javascript] JavaScript의 배열에서 요소를 제거하는 방법은 무엇입니까?

var arr = [1,2,3,5,6];

첫 번째 요소 제거

배열의 첫 번째 요소를 제거하여 배열이되도록하고 싶습니다.

var arr = [2,3,5,6];

두 번째 요소 제거

이 질문을 확장하려면 배열의 두 번째 요소를 제거하여 배열이되도록하려면 어떻게해야합니까?

var arr = [1,3,5,6];



답변

보다 유연한 솔루션을 위해이 splice()기능을 사용하십시오 . 인덱스 값을 기준으로 배열의 모든 항목을 제거 할 수 있습니다.

var indexToRemove = 0;
var numberToRemove = 1;

arr.splice(indexToRemove, numberToRemove);


답변

shift()당신의 상황에 이상적입니다. shift()배열에서 첫 번째 요소를 제거하고 해당 요소를 반환합니다. 이 방법은 배열의 길이를 변경합니다.

array = [1, 2, 3, 4, 5];

array.shift(); // 1

array // [2, 3, 4, 5]


답변

Array.prototype.shift메소드는 배열에서 첫 번째 요소를 제거하고 리턴합니다. 원래 배열을 수정합니다.

var a = [1,2,3]
// [1,2,3]
a.shift()
// 1
a
//[2,3]


답변

arr.slice(begin[,end])

비파괴, 스플 라이스 및 시프트는 원래 배열을 수정합니다


답변

Javascript Arrays에서 임의의 위치에 요소를 삽입하고 삭제하는 방법에 대한 작은 기사를 작성했습니다.

다음은 위치에서 요소를 제거하는 작은 스 니펫입니다. Javascript에서 Array 클래스를 확장하고 remove (index) 메소드를 추가합니다.

// Remove element at the given index
Array.prototype.remove = function(index) {
    this.splice(index, 1);
}

예제에서 첫 번째 항목을 제거하려면 arr.remove ()를 호출하십시오.

var arr = [1,2,3,5,6];
arr.remove(0);

두 번째 항목을 제거하려면

arr.remove(1);

다음 은 Array 클래스에 대한 insert 및 delete 메소드 가 포함 된 작은 기사 입니다.

본질적으로 이것은 스플 라이스를 사용하는 다른 답변과 다르지 않지만 이름 splice은 직관적이지 않으며 응용 프로그램 전체에서 호출하면 코드를 읽기가 더 어려워집니다.


답변

아마도 이런 식으로 뭔가 :

arr=arr.slice(1);


답변

다른 답변은 훌륭 ES6합니다. 배열 기능으로 대체 솔루션을 추가하고 싶었습니다 filter.

filter() 기존 배열에서 주어진 기준에 해당하는 요소로 새 배열을 만듭니다.

따라서 기준을 통과하지 못하는 항목을 쉽게 제거 할 수 있습니다. 이 함수의 장점은 문자열과 숫자뿐만 아니라 복잡한 배열에서도 사용할 수 있다는 것입니다.

몇 가지 예 :

첫 번째 요소를 제거하십시오 .

// Not very useful but it works
function removeFirst(element, index) {
  return index > 0;
}
var arr = [1,2,3,5,6].filter(removeFirst); // [2,3,4,5,6]

두 번째 요소를 제거하십시오 .

function removeSecond(element, index) {
  return index != 1;
}
var arr = [1,2,3,5,6].filter(removeSecond); // [1,3,4,5,6]

홀수 요소 제거 :

function removeOdd(element, index) {
  return !(element % 2);
}
var arr = [1,2,3,5,6].filter(removeOdd); [2,4,6]

재고가없는 품목 제거

const inventory = [
  {name: 'Apple', qty: 2},
  {name: 'Banana', qty: 0},
  {name: 'Orange', qty: 5}
];

const res = inventory.find( product => product.qty > 0);