스택큐힙리스트

어떻게 JavaScript에서 배열에서 특정 항목을 제거할 수 있나요? 본문

카테고리 없음

어떻게 JavaScript에서 배열에서 특정 항목을 제거할 수 있나요?

스택큐힙리스트 2023. 10. 23. 23:07
반응형

특정 값을 배열에서 제거하는 방법은 어떻게 하나요? 예를 들어 다음과 같이:

array.remove(value);

array.remove(value);

제약 사항 : 코어 자바스크립트를 사용해야 합니다. 프레임워크는 허용되지 않습니다.

답변 1

indexOf를 사용하여 제거하려는 배열 요소의 index를 찾고, splice를 사용하여 해당 인덱스를 제거하세요.


splice() 메소드는 기존 요소를 제거하거나 새 요소를 추가하여 배열의 내용을 변경합니다.




const array = [2, 5, 9];
console.log(array);
const index = array.indexOf(5);
if (index > -1) { // 아이템을 찾았을 때만 배열에서 삭제
array.splice(index, 1); // 두 번째 파라미터는 하나의 아이템만 삭제한다는 의미
}
// array = [2, 9]
console.log(array);


splice의 두 번째 매개변수는 삭제할 요소의 수입니다. splice는 배열을 직접 수정하고 삭제된 요소가 포함된 새로운 배열을 반환합니다.

완전성을 위한 이유로, 여기에 함수가 있습니다. 첫 번째 함수는 단일 발생만 제거합니다 (즉, [2,5,9,1,5,8,5]에서 5의 첫 번째 일치 항목을 제거합니다), 두 번째 함수는 모든 일치 항목을 제거합니다:



function removeItemOnce(arr, value) {
var index = arr.indexOf(value);
if (index > -1) {
arr.splice(index, 1);
}
return arr;
}
function removeItemAll(arr, value) {
var i = 0;
while (i < arr.length) {
if (arr[i] === value) {
arr.splice(i, 1);
} else {
++i;
}
}
return arr;
}
// Usage
console.log(removeItemOnce([2,5,9,1,5,8,5], 5))
console.log(removeItemAll([2,5,9,1,5,8,5], 5))


타입스크립트에서는 이러한 함수들이 타입 안전성을 유지할 수 있습니다:

function removeItem<T>(arr: Array<T>, value: T): Array<T> { 
const index = arr.indexOf(value);
if (index > -1) {
arr.splice(index, 1);
}
return arr;
}

function removeItem(arr: Array, value: T): Array { 
const index = arr.indexOf(value);
if (index > -1) {
arr.splice(index, 1);
}
return arr;
}

답변 2

특정 항목을 JavaScript 배열에서 제거하는 방법에 대해 알아보겠습니다. JavaScript에서 배열은 여러 항목을 저장하는데 사용되는 데이터 구조입니다. 때로는 배열에서 특정 항목을 제거해야 하는 경우가 있습니다. 이 문제를 해결하기 위해 JavaScript에는 몇 가지 내장 함수가 있습니다.
1. 사용하는 방법 1: Array.prototype.filter()
Array.prototype.filter() 함수는 콜백 함수를 사용하여 조건을 만족하는 모든 항목을 유지하고, 조건을 만족하지 않는 항목을 제거하는 새로운 배열을 반환합니다. 다음은 Array.prototype.filter() 함수를 사용하여 특정 항목을 제거하는 방법입니다:
```javascript
const numbers = [1, 2, 3, 4, 5];
const filteredNumbers = numbers.filter(number => number !== 3);
console.log(filteredNumbers); // [1, 2, 4, 5]
```
2. 사용하는 방법 2: Array.prototype.splice()
Array.prototype.splice() 함수는 배열에서 항목을 추가 또는 제거하는 데 사용됩니다. 이 함수는 제거된 항목을 반환합니다. 특정 인덱스에서 항목을 제거하려면 다음과 같이 Array.prototype.splice() 함수를 사용할 수 있습니다:
```javascript
const fruits = ['apple', 'banana', 'grape', 'melon'];
const removedFruit = fruits.splice(2, 1);
console.log(removedFruit); // ['grape']
console.log(fruits); // ['apple', 'banana', 'melon']
```
3. 사용하는 방법 3: Array.prototype.slice()
Array.prototype.slice() 함수는 배열의 일부를 추출하여 새로운 배열을 반환합니다. 이 함수를 사용하여 특정 항목을 제외한 배열을 생성할 수 있습니다. 다음은 Array.prototype.slice() 함수를 사용하여 특정 항목을 제거하는 방법입니다:
```javascript
const animals = ['cat', 'dog', 'elephant', 'lion'];
const removedAnimal = animals.slice(0, 2).concat(animals.slice(3));
console.log(removedAnimal); // ['cat', 'dog', 'lion']
console.log(animals); // ['cat', 'dog', 'elephant', 'lion']
```
위의 방법들을 사용하면 JavaScript 배열에서 특정 항목을 제거할 수 있습니다. Array.prototype.filter() 함수는 항목을 유지하는 방법으로 제거하는 가장 일반적인 방법입니다. Array.prototype.splice() 함수는 항목을 제거하는 동시에 제거된 항목을 반환하고, Array.prototype.slice() 함수는 항목을 추출하여 새로운 배열을 반환합니다. 이러한 함수들을 사용하여 JavaScript 배열에서 특정 항목을 제거할 수 있습니다.
이 문서는 JavaScript 배열에서 특정 항목을 제거하는 방법에 대한 설명을 포함하고 있으며, JavaScript 개발자들이 이 기능을 사용하는 데 도움이 될 것입니다.

반응형
Comments