JavaScript에서 요소를 배열에서 제거하려면 어떻게 해야 합니까?
var arr = [1,2,3,5,6];
첫 번째 요소 제거
배열의 첫 번째 요소를 제거하여 다음을 수행합니다.
var arr = [2,3,5,6];
두 번째 요소를 제거합니다.
이 질문을 확장하기 위해 어레이의 두 번째 요소를 삭제하여 다음과 같이 하려면 어떻게 해야 합니다.
var arr = [1,3,5,6];
shift() 이상적입니다. shift()는 배열에서 첫 번째 요소를 삭제하고 해당 요소를 반환합니다.이 메서드는 어레이 길이를 변경합니다.
array = [1, 2, 3, 4, 5];
array.shift(); // 1
array // [2, 3, 4, 5]
보다 유연한 솔루션을 위해서는 이 기능을 사용합니다.인덱스 값에 따라 배열 내의 항목을 삭제할 수 있습니다.
var indexToRemove = 0;
var numberToRemove = 1;
arr.splice(indexToRemove, numberToRemove);
arr.slice(begin[,end])
비파괴성이며 스플라이스 및 시프트는 원래 어레이를 변경합니다.
Array.prototype.shift에서 첫 합니다.원래 배열을 변경합니다.
var a = [1,2,3]
// [1,2,3]
a.shift()
// 1
a
//[2,3]
아마 이런 식일 거예요.
arr=arr.slice(1);
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 클래스의 삽입 및 삭제 메서드가 포함된 작은 문서입니다.
사용한 바 없지만, 은 스플라이스를 사용한 답입니다.splice을 사용하다어플리케이션 전체에 걸쳐 그 콜이 존재하면 코드를 읽기 어려워집니다.
도 좋아요, '보다 낫다'로 다른 요.저는 단지 다른 솔루션을 추가하고 싶었을 뿐입니다.ES6 함수: 열열수함 array: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);
어레이에서 요소를 삭제하는 방법은 여러 가지가 있습니다.아래에 가장 많이 사용되는 옵션을 제시하겠습니다.이 모든 옵션에서 무엇을 사용해야 할지 적절한 이유를 찾을 수 없어서 이 답변을 씁니다.이 질문에 대한 답은 옵션 3(Splice())입니다.
1) SHIFT() - 원래 어레이에서 첫 번째 요소를 삭제하고 첫 번째 요소를 반환합니다.
Array.protype 에 대해서는, 참조를 참조해 주세요.교대제첫 번째 요소를 제거하고 원래 배열을 변경할 수 있는 경우에만 이 옵션을 사용하십시오.
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.protype 에 대해서는, 참조를 참조해 주세요.토막토막이 옵션에서 특정 요소를 제거할 수 없습니다.기존 어레이만 슬라이스하여 어레이의 연속 부분을 가져올 수 있습니다.지정한 인덱스에서 어레이를 잘라내는 것과 같습니다.원래 어레이는 영향을 받지 않는다.
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.protype 에 대해서는, 참조를 참조해 주세요.스플라이스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"]
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]
원본 어레이를 변환하지 않는 타이프 스크립트 솔루션
function removeElementAtIndex<T>(input: T[], index: number) {
return input.slice(0, index).concat(input.slice(index + 1));
}
다음과 같이 줄일 수도 있습니다.
let arr = [1, 2, 3]
arr.reduce((xs, x, index) => {
if (index == 0) {
return xs
} else {
return xs.concat(x)
}
}, Array())
// Or if you like a oneliner
arr.reduce((xs, x, index) => index == 0 ? xs : xs.concat(x), Array())
Array.splice()에는 첫 번째 요소를 제거하는 데 사용할 수 없는 흥미로운 속성이 있습니다.그래서 우리는 이 모든 것을
function removeAnElement( array, index ) {
index--;
if ( index === -1 ) {
return array.shift();
} else {
return array.splice( index, 1 );
}
}
언급URL : https://stackoverflow.com/questions/2003815/how-to-remove-element-from-an-array-in-javascript
'source' 카테고리의 다른 글
| ipython 노트북 clear cell output in code (0) | 2022.12.25 |
|---|---|
| Catalina_OPTS와 JAVA_OPTS의 차이점 (0) | 2022.12.25 |
| jQuery를 사용하여 입력을 비활성화/활성화하시겠습니까? (0) | 2022.12.25 |
| MySql, 날짜 및 시간 열을 타임스탬프로 결합 (0) | 2022.12.25 |
| 유형 힌트를 사용하여 "nullable" 반환 유형을 지정하는 방법 (0) | 2022.12.25 |