복붙노트

[JQUERY] 키 값을 기준으로 배열의 자바 스크립트의 발견 및 제거 개체

JQUERY

키 값을 기준으로 배열의 자바 스크립트의 발견 및 제거 개체

해결법


  1. 1.단순히 반대 술어에 의해 필터링 :

    단순히 반대 술어에 의해 필터링 :

    var data = $.grep(data, function(e){ 
         return e.id != id; 
    });
    

  2. 2.여기 당신이 jQuery를 사용하지 않는 경우 해결책은 다음과 같습니다

    여기 당신이 jQuery를 사용하지 않는 경우 해결책은 다음과 같습니다

    myArray = myArray.filter(function( obj ) {
      return obj.id !== id;
    });
    

  3. 3.이 작업을 단순화 할 수 있으며, 여기에 jQuery를 사용하여 필요 정말 없습니다.

    이 작업을 단순화 할 수 있으며, 여기에 jQuery를 사용하여 필요 정말 없습니다.

    var id = 88;
    
    for(var i = 0; i < data.length; i++) {
        if(data[i].id == id) {
            data.splice(i, 1);
            break;
        }
    }
    

    그냥 목록을 통해 반복 일치하는 아이디, 스플 라이스를 찾은 다음 루프를 종료 휴식


  4. 4.ES6 / findIndex 및 배열 확산 연산자를 사용하여 2015 년에이 작업을 수행 할 수있는 새로운 방법이있다 :

    ES6 / findIndex 및 배열 확산 연산자를 사용하여 2015 년에이 작업을 수행 할 수있는 새로운 방법이있다 :

    const index = data.findIndex(obj => obj.id === id);
    const newData = [
        ...data.slice(0, index),
        ...data.slice(index + 1)
    ]
    

    이 같은 나중에 재사용하는 기능으로 바꿀 수 있습니다 :

    function remove(array, key, value) {
        const index = array.findIndex(obj => obj[key] === value);
        return index >= 0 ? [
            ...array.slice(0, index),
            ...array.slice(index + 1)
        ] : array;
    }
    

    당신이 할 수있는이 방법은 한 가지 방법을 사용하여 다른 키에서 항목을 제거하는 (그리고 기준을 충족 어떤 목적이 없다면, 당신은 원래의 배열을 반환받을) :

    const newData = remove(data, "id", "88");
    const newData2 = remove(data, "name", "You are awesome!");
    

    또는 당신은 당신의 Array.prototype으로 그것을 넣을 수 있습니다 :

    Array.prototype.remove = function (key, value) {
        const index = this.findIndex(obj => obj[key] === value);
        return index >= 0 ? [
            ...this.slice(0, index),
            ...this.slice(index + 1)
        ] : this;
    };
    

    그리고이 방법을 사용합니다 :

    const newData = data.remove("id", "88");
    const newData2 = data.remove("name", "You are awesome!");
    

  5. 5.IDS는 고유하며 당신은 단지 트릭을 할해야 할 하나 개의 요소 스플 라이스를 제거해야한다고 가정 :

    IDS는 고유하며 당신은 단지 트릭을 할해야 할 하나 개의 요소 스플 라이스를 제거해야한다고 가정 :

    var data = [
      {"id":"88","name":"Lets go testing"},
      {"id":"99","name":"Have fun boys and girls"},
      {"id":"108","name":"You are awesome!"}
    ],
    id = 88;
    
    console.table(data);
    
    $.each(data, function(i, el){
      if (this.id == id){
        data.splice(i, 1);
      }
    });
    
    console.table(data);
    

  6. 6.

    var items = [
      {"id":"88","name":"Lets go testing"},
      {"id":"99","name":"Have fun boys and girls"},
      {"id":"108","name":"You are awesome!"}
    ];
    

    당신이 jQuery를 사용하는 경우, 다음과 같이 jQuery.grep을 사용합니다 :

    items = $.grep(items, function(item) { 
      return item.id !== '88';
    });
    // items => [{ id: "99" }, { id: "108" }]
    

    ES5 Array.prototype.filter 사용 :

    items = items.filter(function(item) { 
      return item.id !== '88'; 
    });
    // items => [{ id: "99" }, { id: "108" }]
    

  7. 7.어쩌면 당신은 $ .grep () 함수를 찾고 있습니다 :

    어쩌면 당신은 $ .grep () 함수를 찾고 있습니다 :

    arr = [
      {"id":"88","name":"Lets go testing"},
      {"id":"99","name":"Have fun boys and girls"},
      {"id":"108","name":"You are awesome!"}
    ];
    
    id = 88;
    arr = $.grep(arr, function(data, index) {
       return data.id != id
    });
    

  8. 8.SIFT는이 같은 작업을 훨씬 더 고급 사람을위한 강력한 수집 필터입니다. 그것은 node.js.의 브라우저 나 서버 측에서 클라이언트 측 작동

    SIFT는이 같은 작업을 훨씬 더 고급 사람을위한 강력한 수집 필터입니다. 그것은 node.js.의 브라우저 나 서버 측에서 클라이언트 측 작동

    var collection = [
        {"id":"88","name":"Lets go testing"},
        {"id":"99","name":"Have fun boys and girls"},
        {"id":"108","name":"You are awesome!"}
    ];
    var sifted = sift({id: {$not: 88}}, collection);
    

    이것은 $에서, $ 닌, $가 존재 $ GTE, $ 하였다, $ LTE, $ LT, $ 당량, $ NE, $ 개조, $ 모두 $ 및 $ 또는 $ 않으며, $되지 $ 같은 필터를 지원 크기, $ 유형 및 $ 정규식, 그리고 최선의 노력을 기울이고은 API 호환 MongoDB를 수집 필터링 할 수 있습니다.


  9. 9.

    Array.prototype.removeAt = function(id) {
        for (var item in this) {
            if (this[item].id == id) {
                this.splice(item, 1);
                return true;
            }
        }
        return false;
    }
    

    이 트릭, jsfiddle을해야


  10. 10.당신이 엄격한 평등을 테스트하는 경우 반드시 정수로 오브젝트 ID를 강요합니다

    당신이 엄격한 평등을 테스트하는 경우 반드시 정수로 오브젝트 ID를 강요합니다

    var result = $.grep(data, function(e, i) { 
      return +e.id !== id;
    });
    

    데모


  11. 11.당신이 JS 밑줄 사용하는 경우는 키를 기반으로 개체를 제거하기 쉽습니다. http://underscorejs.org. 예:

    당신이 JS 밑줄 사용하는 경우는 키를 기반으로 개체를 제거하기 쉽습니다. http://underscorejs.org. 예:

      var temp1=[{id:1,name:"safeer"},  //temp array
                 {id:2,name:"jon"},
                 {id:3,name:"James"},
                 {id:4,name:"deepak"},
                 {id:5,name:"ajmal"}];
    
      var id = _.pluck(temp1,'id'); //get id array from temp1
      var ids=[2,5,10];             //ids to be removed
      var bool_ids=[];
      _.each(ids,function(val){
         bool_ids[val]=true;
      });
      _.filter(temp1,function(val){
         return !bool_ids[val.id];
      });
    

  12. 12.당신이 찾고 ID로 객체와이 코드를 아래처럼 제거 할 경우는 답변 간단한 방법을 동의합니다.

    당신이 찾고 ID로 객체와이 코드를 아래처럼 제거 할 경우는 답변 간단한 방법을 동의합니다.

       var obj = JSON.parse(data);
       var newObj = obj.filter(item=>item.Id!=88);
           
    
  13. from https://stackoverflow.com/questions/21659888/javascript-find-and-remove-object-in-array-based-on-key-value by cc-by-sa and MIT license