jQuery를 사용하여 배열에서 특정 값을 제거하는 방법
다음과 같은 배열이 있습니다. var y = [1, 2, 3];
2
array 에서 제거 하고 싶습니다 y
.
jQuery를 사용하여 배열에서 특정 값을 제거하려면 어떻게합니까? 나는 시도 pop()
했지만 항상 마지막 요소를 제거합니다.
작동하는 JSFIDDLE
다음과 같이 할 수 있습니다 :
var y = [1, 2, 2, 3, 2]
var removeItem = 2;
y = jQuery.grep(y, function(value) {
return value != removeItem;
});
결과:
[1, 3]
http://snipplr.com/view/14381/remove-item-from-array-with-jquery/
jQuery를 사용하면 다음과 같이 한 줄 작업을 수행 할 수 있습니다.
예 : http://jsfiddle.net/HWKQY/
y.splice( $.inArray(removeItem, y), 1 );
native .splice()
및 jQuery를 사용합니다 $.inArray()
.
jQuery.filter
방법이 유용합니다. Array
객체에 사용할 수 있습니다.
var arr = [1, 2, 3, 4, 5, 5];
var result = arr.filter(function(elem){
return elem != 5;
});//result -> [1,2,3,4]
http://jsfiddle.net/emrefatih47/ar0dhvhw/
Ecmascript 6에서 :
let values = [1,2,3,4,5];
let evens = values.filter(v => v % 2 == 0);
alert(evens);
https://jsfiddle.net/emrefatih47/nnn3c2fo/
underscore.js 를 사용할 수 있습니다 . 정말 간단합니다.
귀하의 경우 작성해야 할 모든 코드는-
_.without([1,2,3], 2);
결과는 [1,3]이됩니다.
작성하는 코드가 줄어 듭니다.
jQuery 방법은 아니지만 ... 더 간단한 방법을 사용하지 않는 이유는 무엇입니까? 다음 배열에서 'c'를 제거하십시오.
var a = ['a','b','c','d']
a.splice(a.indexOf('c'),1);
>["c"]
a
["a", "b", "d"]
당신은 또한 사용할 수 있습니다 : (나 자신에게주의 : 소유하지 않은 객체를 수정하지 마십시오 )
Array.prototype.remove = function(v) { this.splice(this.indexOf(v) == -1 ? this.length : this.indexOf(v), 1); }
var a = ['a','b','c'];
a.remove('c'); //value of "a" is now ['a','b']
추가가 더 간단합니다a.push('c')
배열에서 항목 제거
var arr = ["jQuery", "JavaScript", "HTML", "Ajax", "Css"];
var itemtoRemove = "HTML";
arr.splice($.inArray(itemtoRemove, arr), 1);
//This prototype function allows you to remove even array from array
Array.prototype.remove = function(x) {
var i;
for(i in this){
if(this[i].toString() == x.toString()){
this.splice(i,1)
}
}
}
사용 예
var arr = [1,2,[1,1], 'abc'];
arr.remove([1,1]);
console.log(arr) //[1, 2, 'abc']
var arr = [1,2,[1,1], 'abc'];
arr.remove(1);
console.log(arr) //[2, [1,1], 'abc']
var arr = [1,2,[1,1], 'abc'];
arr.remove('abc');
console.log(arr) //[1, 2, [1,1]]
이 프로토 타입 함수를 사용하려면 코드에 붙여 넣어야합니다. 그런 다음 '점 표기법'을 사용하여 모든 배열에 적용 할 수 있습니다.
someArr.remove('elem1')
Javascript에는 기본 방법이 없습니다. 대신 라이브러리를 사용하거나 작은 함수를 작성하여이를 수행 할 수 있습니다. http://ejohn.org/blog/javascript-array-remove/
내 버전의 user113716 님의 답변입니다. 일치하는 것이 없으면 좋지 않은 값을 제거합니다.
var y = [1, 2, 3]
var removeItem = 2;
var i = $.inArray(removeItem,y)
if (i >= 0){
y.splice(i, 1);
}
alert(y);
일치하는 항목이 있으면 1 개의 항목을 제거하고 일치하는 항목이 없으면 0을 제거합니다.
작동 방식 :
- $ .inArray (value, array)는의 첫 번째 색인을 찾는 jQuery 함수
value
입니다.array
- 위의 값을 찾지 못하면 -1을 반환하므로 제거하기 전에 i가 유효한 인덱스인지 확인하십시오. 인덱스 -1을 제거한다는 것은 마지막을 제거하는 것을 의미하며 여기서는 도움이되지 않습니다.
- .splice (지수는 카운트)를 제거
count
값의 수에서 시작하여index
우리가 찾는 때문에,count
의를1
//in case somebody needs something like this: multidimensional array (two items)
var ar = [[0,'a'],[1,'b'],[2,'c'],[3,'d'],[4,'e'],[5,'f']];
var removeItem = 3;
ar = jQuery.grep(ar, function(n) {
return n[0] != removeItem; //or n[1] for second item in two item array
});
ar;
다음과 같이 .not 함수를 사용할 수 있습니다.
var arr = [ 1 , 2 , 3 , 5 , 8];
var searchValue = 2;
var newArr = $(arr).not([searchValue]).get();
스플 라이스에는 간단한 해결책이 있습니다. W3School 스플 라이스 구문 에 따르면 다음과 같습니다.
array.splice(index, howmany, item1, ....., itemX)
색인 필수 사항. 항목을 추가 / 제거 할 위치를 지정하는 정수입니다. 음수 값을 사용하여 배열 끝에서 위치를 지정하십시오.
howmany 필수. 제거 할 항목 수입니다. 0으로 설정하면 항목이 제거되지 않습니다
item1, ..., itemX 선택 사항. 배열에 추가 할 새 항목
다음 js는 주어진 배열에서 하나 이상의 일치하는 항목을 찾으면 배열의 마지막 항목을 제거하지 않습니다.
var x = [1,2,3,4,5,4,4,6,7];
var item = 4;
var startItemIndex = $.inArray(item, x);
var itemsFound = x.filter(function(elem){
return elem == item;
}).length;
또는
var itemsFound = $.grep(x, function (elem) {
return elem == item;
}).length;
최종은 다음과 같아야합니다
x.splice( startItemIndex , itemsFound );
도움이 되었기를 바랍니다.
배열의 객체 속성에 따라 여러 객체를 한 번에 삭제 해야하는 비슷한 작업이있었습니다.
그래서 몇 번의 반복 후에 나는 다음과 같이 끝납니다 :
list = $.grep(list, function (o) { return !o.IsDeleted });
다음과 같이 pick_and_remove()
함수를 사용하여 Array 클래스를 확장합니다 .
var ArrayInstanceExtensions = {
pick_and_remove: function(index){
var picked_element = this[index];
this.splice(index,1);
return picked_element;
}
};
$.extend(Array.prototype, ArrayInstanceExtensions);
약간 장황하게 보일 수 있지만 pick_and_remove()
원하는 배열을 호출 할 수 있습니다 !
용법:
array = [4,5,6] //=> [4,5,6]
array.pick_and_remove(1); //=> 5
array; //=> [4,6]
이 모든 것을 포켓몬 테마의 행동으로 볼 수 있습니다 .
/** SUBTRACT ARRAYS **/
function subtractarrays(array1, array2){
var difference = [];
for( var i = 0; i < array1.length; i++ ) {
if( $.inArray( array1[i], array2 ) == -1 ) {
difference.push(array1[i]);
}
}
return difference;
}
그런 다음 코드의 어느 곳에서나 함수를 호출 할 수 있습니다.
var I_like = ["love", "sex", "food"];
var she_likes = ["love", "food"];
alert( "what I like and she does't like is: " + subtractarrays( I_like, she_likes ) ); //returns "Naughty :P"!
이것은 모든 경우에 작동하며 위 방법의 문제를 피합니다. 희망이 도움이됩니다!
배열에 요소가 존재하는지 먼저 확인
$.inArray(id, releaseArray) > -1
위의 행은 해당 요소가 배열에있는 경우 해당 요소의 색인을 리턴하고, 그렇지 않으면 -1을 리턴합니다.
releaseArray.splice($.inArray(id, releaseArray), 1);
위의 줄은이 요소를 발견하면 배열에서 제거합니다. 아래의 논리를 요약하면 배열에서 요소를 확인하고 제거하는 데 필요한 코드가 있습니다.
if ($.inArray(id, releaseArray) > -1) {
releaseArray.splice($.inArray(id, releaseArray), 1);
}
else {
releaseArray.push(id);
}
바닐라 JavaScript를 사용하여 어레이에서 2를 안전하게 제거하려면 :
// Define polyfill for browsers that don't natively support Array.indexOf()
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(searchElement, fromIndex) {
var k;
if (this===null) {
throw new TypeError('"this" is null or not defined');
}
var O = Object(this),
len = O.length >>> 0;
if (len===0) return -1;
var n = +fromIndex || 0;
if (Math.abs(n)===Infinity) n = 0;
if (n >= len) return -1;
k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
while (k < len) {
if (k in O && O[k]===searchElement) return k;
++k;
}
return -1;
};
}
// Remove first instance of 2 from array
if (y.indexOf(2) > -1) {
y.splice(y.indexOf(2), 1);
}
/* To remove all instances of 2 from array, change 'if' to 'while':
while (y.indexOf(2) > -1) {
y.splice(y.indexOf(2), 1);
}
*/
console.log(y); // Returns [1, 3]
폴리 필 소스 : Mozilla
참고 URL : https://stackoverflow.com/questions/3596089/how-to-remove-specific-value-from-array-using-jquery
'Programming' 카테고리의 다른 글
Jquery를 사용하여 CSS 표시 없음을 변경하거나 속성을 차단하는 방법은 무엇입니까? (0) | 2020.02.22 |
---|---|
문자열 키를 사용하여 중첩 JavaScript 객체에 액세스 (0) | 2020.02.22 |
더 큰 div 안에 이미지 센터를 (세로 및 가로로) 만드는 방법 (0) | 2020.02.22 |
JavaScript 문자열 개행 문자? (0) | 2020.02.21 |
github의 기존 이슈에 새로운 풀 요청을 어떻게 첨부합니까? (0) | 2020.02.21 |