복붙노트

[JQUERY] jQuery를 사용하여 배열에서 특정 값을 제거하는 방법

JQUERY

jQuery를 사용하여 배열에서 특정 값을 제거하는 방법

해결법


  1. 1.실제로 동작하는 JSFIDDLE

    실제로 동작하는 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/


  2. 2.jQuery를, 당신은이 같은 한 줄의 작업을 수행 할 수 있습니다

    jQuery를, 당신은이 같은 한 줄의 작업을 수행 할 수 있습니다

    예 : http://jsfiddle.net/HWKQY/

    y.splice( $.inArray(removeItem, y), 1 );
    

    기본 .splice ()를 사용하고 jQuery의 $ .inArray ().


  3. 3.jQuery.filter 방법은 유용하다. 이 Array 객체에 사용할 수 있습니다.

    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/

    ECMA 스크립트 6 :

    let values = [1,2,3,4,5];
    let evens = values.filter(v => v % 2 == 0);
    alert(evens);
    

    https://jsfiddle.net/emrefatih47/nnn3c2fo/


  4. 4.아니 jQuery를 방법하지만 ... 왜 간단한 방법을 사용하지 마십시오. 다음 배열에서 제거 'C'

    아니 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']
    

    simplera.push입니다 추가 ( 'C')


  5. 5.당신은 underscore.js를 사용할 수 있습니다. 정말 일을 간단하게 해줍니다.

    당신은 underscore.js를 사용할 수 있습니다. 정말 일을 간단하게 해줍니다.

    귀하의 경우에는 모든 코드는 쓰기가에있을 것이라는 점을 -

    _.without([1,2,3], 2);
    

    그 결과는 [1,3]이 될 것이다.

    그것은 당신이 작성하는 코드를 줄일 수 있습니다.


  6. 6.배열에서 항목 제거

    배열에서 항목 제거

    var arr = ["jQuery", "JavaScript", "HTML", "Ajax", "Css"];
    var itemtoRemove = "HTML";
    arr.splice($.inArray(itemtoRemove, arr), 1);
    

  7. 7.

    //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')
    

  8. 8.자바 스크립트에서이 작업을 수행 할 기본 방법은 없습니다. 대신이 작업을 수행하는 라이브러리를 사용하거나 작은 함수를 작성할 수 http://ejohn.org/blog/javascript-array-remove/

    자바 스크립트에서이 작업을 수행 할 기본 방법은 없습니다. 대신이 작업을 수행하는 라이브러리를 사용하거나 작은 함수를 작성할 수 http://ejohn.org/blog/javascript-array-remove/


  9. 9.이 같은이 아니요 기능을 사용할 수 있습니다 :

    이 같은이 아니요 기능을 사용할 수 있습니다 :

    var arr = [ 1 , 2 , 3 , 5 , 8];
    var searchValue = 2;
    
    var newArr = $(arr).not([searchValue]).get();
    

  10. 10.

    $.inArray(id, releaseArray) > -1
    
     releaseArray.splice($.inArray(id, releaseArray), 1);
    
      if ($.inArray(id, releaseArray) > -1) {
                    releaseArray.splice($.inArray(id, releaseArray), 1);
                }
                else {
                    releaseArray.push(id);
                }
    

  11. 11.

    //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;
    

  12. 12.user113716의 대답은 내 버전. 그의 제거합니다 일치하는 좋은하지 않은, 발견되지 않으면 값.

    user113716의 대답은 내 버전. 그의 제거합니다 일치하는 좋은하지 않은, 발견되지 않으면 값.

    var y = [1, 2, 3]
    var removeItem = 2;
    
    var i = $.inArray(removeItem,y)
    
    if (i >= 0){
        y.splice(i, 1);
    }
    
    alert(y);
    

    더 일치가 발견되지 않으면 일치하는 항목이 0, 발견되면이 이제 1 개 항목을 제거합니다.

    그것이 작동하는 방법 :


  13. 13.스플 라이스와 간단한 해결책이있다. 팔로 W3School 접합부 구에 따르면

    스플 라이스와 간단한 해결책이있다. 팔로 W3School 접합부 구에 따르면

    array.splice(index, howmany, item1, ....., itemX)
    

    인덱스 필수. 어떤 위치에 지정 배열의 끝에서 위치를 지정하려면 / 제거 항목을 사용하여 음의 값을 추가하는 것을 정수

    howmany 필수. 항목 수를 제거합니다. 0으로 설정하면 항목이 제거되지 않습니다

    항목 1, ..., 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 );
    

    도움이 되었기를 바랍니다.


  14. 14.나는 배열에있는 개체의 속성을 기반으로 한 번에 여러 개체를 삭제하는 데 필요한 유사한 작업을했다.

    나는 배열에있는 개체의 속성을 기반으로 한 번에 여러 개체를 삭제하는 데 필요한 유사한 작업을했다.

    그래서 내가 끝낼 몇 반복 후 :

    list = $.grep(list, function (o) { return !o.IsDeleted });
    

  15. 15.그래서처럼 pick_and_remove () 함수 Array 클래스를 확장하는 것입니다 :

    그래서처럼 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]
    

    여기 포켓몬 테마로 행동이 모든 것을 볼 수 있습니다.


  16. 16.

    /** 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"!
    

    이 모든 경우에 작동하고 위의 방법으로 문제를 피할 수 있습니다. 희망이 도움이!


  17. 17.그것은 나를 위해 작동이 시도

    그것은 나를 위해 작동이 시도

    _clientsSelected = ["10", "30", "12"];
    function (removeItem) {
    console.log(removeItem);
       _clientsSelected.splice($.inArray(removeItem, _clientsSelected), 1);
       console.log(_clientsSelected);
    `enter code here`},
    

  18. 18.여기에 두 번째로 upvoted 대답은 OP가 원하는 의도 된 행동의 한 라이너의 jQuery 방법에 가능한 가장 가까운 궤도에,하지만 그들은 자신의 코드의 끝에 발견, 그것은 결함이있다. 제거 할 귀하의 항목을 배열에 실제로없는 경우, 마지막 항목이 제거 얻을 것이다.

    여기에 두 번째로 upvoted 대답은 OP가 원하는 의도 된 행동의 한 라이너의 jQuery 방법에 가능한 가장 가까운 궤도에,하지만 그들은 자신의 코드의 끝에 발견, 그것은 결함이있다. 제거 할 귀하의 항목을 배열에 실제로없는 경우, 마지막 항목이 제거 얻을 것이다.

    몇몇은이 문제를 발견했습니다, 일부는이에 대해 가드를 통해 루프 방법을 제안했다. 내가 찾을 수있는 가장 짧은, 가장 깨끗한 방법을 제공하며, 나는이 방법에 따라 자신의 코드를 수정하는 방법에 대한 자신의 답변을 아래에 댓글을 달았.

    var x = [1, 2, "bye", 3, 4];
    var y = [1, 2, 3, 4];
    var removeItem = "bye";
    
    // Removing an item that exists in array
    x.splice( $.inArray(removeItem,x), $.inArray(removeItem,x) ); // This is the one-liner used
    
    // Removing an item that DOESN'T exist in array
    y.splice( $.inArray(removeItem,y), $.inArray(removeItem,y) ); // Same usage, different array
    
    // OUTPUT -- both cases are expected to be [1,2,3,4]
    alert(x + '\n' + y);
    

    어레이 X 용이 요소 "안녕"제거 및 배열 Y는 그대로있을 것이다.

    제 인수 인수 $ .inArray (removeItem 어레이)를 사용하는 실제 접합부의 길이 되 버린다. 아이템이 발견되지 않았기 때문에,이 평가하여 array.splice는 행 (-1, -1); 단지 아무것도 발생되는이 접합되는 모든 ... 용 루프를 작성하지 않고도.


  19. 19.안전하게 바닐라 자바 ​​스크립트를 사용하여 배열에서 2를 제거하려면 :

    안전하게 바닐라 자바 ​​스크립트를 사용하여 배열에서 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]
    

    Polyfill 출처 : 모질라


  20. 20.그냥 놀라게 아직 아무도 함수로 만들지 않았다, Sarfraz의 대답에 추가 할 수 있습니다.

    그냥 놀라게 아직 아무도 함수로 만들지 않았다, Sarfraz의 대답에 추가 할 수 있습니다.

    같은 값에 더 배열에 한 번 이상이있는 경우 .filter 방법을 사용하여 ddagsan에서 답을 사용합니다.

    함수 arrayRemoveVal (배열 removeValue) { VAR newArray = jQuery.grep (배열 함수 (값) {리턴 값 = removeValue;!}); newArray를 반환; } VAR의 promoItems = [1,2,3,4]; promoItems = arrayRemoveVal (promoItems 3) // 3 삭제 CONSOLE.LOG (promoItems); promoItems = arrayRemoveVal (promoItems는, 3); // 아무것도를 삭제 CONSOLE.LOG (promoItems); <스크립트 SRC = "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js">

  21. from https://stackoverflow.com/questions/3596089/how-to-remove-specific-value-from-array-using-jquery by cc-by-sa and MIT license