[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);