source

JavaScript에서 요소를 배열에서 제거하려면 어떻게 해야 합니까?

goodcode 2022. 12. 25. 11:18
반응형

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

반응형