programing

Javascript 배열 검색 및 문자열 제거

bestcode 2023. 1. 21. 09:48
반응형

Javascript 배열 검색 및 문자열 제거

다음과 같은 것이 있습니다.

var array = new Array();
array.push("A");
array.push("B");
array.push("C");

나는 다음과 같은 일을 하고 싶다.

array.remove("B");

제거 기능은 없습니다.어떻게 하면 좋을까요?

실제로 이 스레드를 최신 1라인 솔루션으로 업데이트하고 있습니다.

let arr = ['A', 'B', 'C'];
arr = arr.filter(e => e !== 'B'); // will return ['A', 'C']

기본적으로 삭제할 요소와 다른 요소를 모두 선택하여 배열을 필터링하는 것이 기본입니다.

참고: 모든 항목이 제거됩니다.

편집:

처음 발생한 항목만 삭제하는 경우:

t = ['A', 'B', 'C', 'B'];
t.splice(t.indexOf('B'), 1); // will return ['B'] and t is now equal to ['A', 'C', 'B']

목록을 역순으로 반복하여 메서드를 사용합니다.

var array = ['A', 'B', 'C']; // Test
var search_term = 'B';

for (var i=array.length-1; i>=0; i--) {
    if (array[i] === search_term) {
        array.splice(i, 1);
        // break;       //<-- Uncomment  if only the first term has to be removed
    }
}

검색어의 모든 항목을 제거해야 할 경우 역순이 중요합니다.그렇지 않으면 카운터가 증가하고 요소를 건너뜁니다.

첫 번째 항목만 제거해야 하는 경우 다음 항목도 작동합니다.

var index = array.indexOf(search_term);    // <-- Not supported in <IE9
if (index !== -1) {
    array.splice(index, 1);
}

원라이너 목록

이 어레이에 대해 이 문제를 해결합니다.

var array = ['A', 'B', 'C'];

1. 첫 번째 것만 삭제합니다.항목이 존재하는 것이 확실한 경우 사용

array.splice(array.indexOf('B'), 1);

2. 마지막 항목만 삭제합니다.항목이 존재하는 것이 확실한 경우 사용

array.splice(array.lastIndexOf('B'), 1);

3. 모든 항목을 제거합니다.

array = array.filter(v => v !== 'B'); 

데모

찾으시는 아이템의 위치를 찾아 삭제하셔야 합니다.

function remove(arr, what) {
    var found = arr.indexOf(what);

    while (found !== -1) {
        arr.splice(found, 1);
        found = arr.indexOf(what);
    }
}

var array = new Array();
array.push("A");
array.push("B");
array.push("C");
 ​   
remove(array, 'B');
alert(array)​​​​;

이렇게 하면 모든 문제가 해결됩니다.

간단하게

array.splice(array.indexOf(item), 1);

심플한 솔루션 (ES6)

중복 요소가 없는 경우

Array.prototype.remove = function(elem) {
  var indexElement = this.findIndex(el => el === elem);
  if (indexElement != -1)
    this.splice(indexElement, 1);
  return this;
};   

온라인 데모(fiddle)

const changedArray = array.filter( function(value) {
  return value !== 'B'
});

또는 다음을 사용할 수 있습니다.

const changedArray = array.filter( (value) => value === 'B');

changeed Array에는 값 'B'가 없는 것이 포함됩니다.

삭제는 본인이 직접 작성해야 합니다.어레이를 루프하여 삭제할 항목의 인덱스를 가져와 사용할 수 있습니다.splice제거할 수 있습니다.

또는 새 어레이를 만들고 현재 어레이를 루프하여 현재 개체가 제거할 개체와 일치하지 않으면 새 어레이에 넣을 수 있습니다.

용도:

array.splice(2, 1);

그러면 어레이에서 인덱스 2(3번째 항목)부터1개의 항목이 삭제됩니다.

array.splice 사용

/*array.splice(index , howMany[, element1[, ...[, elementN]]])

array.splice(index) // SpiderMonkey/Firefox extension*/

array.splice(1,1)

출처 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

이것은 str 리스트에서만 유효합니다.이것을 검색해 주세요.

myStrList.filter(item=> !["deletedValue","deletedValue2"].includes(item))

언급URL : https://stackoverflow.com/questions/9792927/javascript-array-search-and-remove-string

반응형