var arr = [1,2,3,5,6];
첫 번째 요소 제거
배열의 첫 번째 요소를 제거하여 배열이되도록하고 싶습니다.
var arr = [2,3,5,6];
두 번째 요소 제거
이 질문을 확장하려면 배열의 두 번째 요소를 제거하여 배열이되도록하려면 어떻게해야합니까?
var arr = [1,3,5,6];
splice
하지 않습니다 slice
.
var arr = [1,2,3,5,6];
배열의 첫 번째 요소를 제거하여 배열이되도록하고 싶습니다.
var arr = [2,3,5,6];
이 질문을 확장하려면 배열의 두 번째 요소를 제거하여 배열이되도록하려면 어떻게해야합니까?
var arr = [1,3,5,6];
splice
하지 않습니다 slice
.
답변:
보다 유연한 솔루션을 위해이 splice()
기능을 사용하십시오 . 인덱스 값을 기준으로 배열의 모든 항목을 제거 할 수 있습니다.
var indexToRemove = 0;
var numberToRemove = 1;
arr.splice(indexToRemove, numberToRemove);
arr.splice(1,1)
두 번째 요소.
splice()
이상 shift()
은 더 유연하기 때문이다. 미래에 다른 것을하고 싶을 수도 있으며 항상 하나의 요소 또는 첫 번째 요소 만 제거하고 싶지는 않습니다.
shift()
당신의 상황에 이상적입니다. shift()
배열에서 첫 번째 요소를 제거하고 해당 요소를 반환합니다. 이 방법은 배열의 길이를 변경합니다.
array = [1, 2, 3, 4, 5];
array.shift(); // 1
array // [2, 3, 4, 5]
shift()
합니다 splice(..., ...)
.
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);
ES6 Destructuring Assignment 기능을 나머지 연산자와 함께 사용할 수 있습니다. 쉼표는 요소를 제거 할 위치와 나머지 (... arr) 연산자를 사용하여 배열의 나머지 요소를 제공합니다.
const source = [1,2,3,5,6];
function removeFirst(list) {
var [, ...arr] = list;
return arr;
}
const arr = removeFirst(source);
console.log(arr); // [2, 3, 5, 6]
console.log(source); // [1, 2, 3, 5, 6]
Array.splice()
첫 번째 요소를 제거하는 데 사용할 수없는 흥미로운 속성이 있습니다. 그래서 우리는
function removeAnElement( array, index ) {
index--;
if ( index === -1 ) {
return array.shift();
} else {
return array.splice( index, 1 );
}
}
배열에서 요소를 제거하는 방법에는 여러 가지가 있습니다. 아래에서 가장 많이 사용되는 옵션을 지적하겠습니다. 이 모든 옵션에서 무엇을 사용 해야하는지에 대한 적절한 이유를 찾을 수 없기 때문에이 답변을 작성하고 있습니다. 질문에 대한 답은 옵션 3 ( Splice () )입니다.
1) SHIFT ()-원래 배열에서 첫 번째 요소를 제거하고 첫 번째 요소를 반환
Array.prototype.shift ()에 대한 참조를 참조하십시오 . 첫 번째 요소를 제거하고 원래 배열을 변경해도 괜찮은 경우에만 사용하십시오.
const array1 = [1, 2, 3];
const firstElement = array1.shift();
console.log(array1);
// expected output: Array [2, 3]
console.log(firstElement);
// expected output: 1
2) SLICE ()-시작 색인과 종료 색인으로 구분 된 배열의 사본을 리턴합니다.
Array.prototype.slice ()에 대한 참조를 참조하십시오 . 이 옵션에서 특정 요소를 제거 할 수 없습니다. 기존 배열 만 슬라이스하고 배열의 연속 부분을 얻을 수 있습니다. 지정한 인덱스에서 배열을 자르는 것과 같습니다. 원래 배열은 영향을받지 않습니다.
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2));
// expected output: Array ["camel", "duck", "elephant"]
console.log(animals.slice(2, 4));
// expected output: Array ["camel", "duck"]
console.log(animals.slice(1, 5));
// expected output: Array ["bison", "camel", "duck", "elephant"]
3) SPLICE ()-특정 인덱스에서 요소를 제거하거나 교체하여 배열의 내용을 변경합니다.
Array.prototype.splice ()에 대한 참조를 참조하십시오 . splice () 메서드는 기존 요소를 제거 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경합니다. 업데이트 된 배열을 반환합니다. 원래 배열이 업데이트됩니다.
const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "June"]
months.splice(4, 1, 'May');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "May"]
slice(start, end)
하지 'how_many_to_remove'