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;
};
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
'programing' 카테고리의 다른 글
레일 포함 mariadb: libmysqlclient-dev를 설치할 수 없습니다. (0) | 2023.01.21 |
---|---|
Python에서 표현식과 문장의 차이점은 무엇입니까? (0) | 2023.01.21 |
Jupyter 노트북의 tqdm은 새로운 진행 표시줄을 반복적으로 인쇄합니다. (0) | 2023.01.21 |
목록을 2개씩 반복하려면 어떻게 해야 하나요? (0) | 2023.01.21 |
목록에서 가장 긴 문자열을 선택하는 Python의 가장 효율적인 방법? (0) | 2023.01.21 |