복붙노트

[JQUERY] 오브젝트 속성에 기초하여 제거 배열 요소

JQUERY

오브젝트 속성에 기초하여 제거 배열 요소

해결법


  1. 1.하나의 가능성 :

    하나의 가능성 :

    myArray = myArray.filter(function( obj ) {
        return obj.field !== 'money';
    });
    

    해당 필터는 새 배열을 만들고 있습니다. 새 참조하여 원래의 변수에 myArray을 업데이트하더라도 원래의 배열을 참조하여 다른 변수는 필터링 된 데이터를 얻을 수 없겠죠. 주의해서 사용합니다.


  2. 2.반복 처리 원하지 않는 것들을 밖으로 배열 및 접합을 통해. 쉽게 사용하기 위해 반복, 거꾸로 그래서 당신은 계정에 배열의 실제 성격을 수행 할 필요가 없습니다 :

    반복 처리 원하지 않는 것들을 밖으로 배열 및 접합을 통해. 쉽게 사용하기 위해 반복, 거꾸로 그래서 당신은 계정에 배열의 실제 성격을 수행 할 필요가 없습니다 :

    for (var i = myArray.length - 1; i >= 0; --i) {
        if (myArray[i].field == "money") {
            myArray.splice(i,1);
        }
    }
    

  3. 3.당신이 그것의 필드 속성에서 두 번째 개체를 제거하고 싶은 말은.

    당신이 그것의 필드 속성에서 두 번째 개체를 제거하고 싶은 말은.

    ES6로 그것은이 한 쉽게합니다.

    myArray.splice(myArray.findIndex(item => item.field === "cStatus"), 1)
    

  4. 4.당신은 특정 요소의 인덱스를 취득하고이를 이용하여 접합하기 위해 lodash의 findIndex를 사용할 수 있습니다.

    당신은 특정 요소의 인덱스를 취득하고이를 이용하여 접합하기 위해 lodash의 findIndex를 사용할 수 있습니다.

    myArray.splice(_.findIndex(myArray, function(item) {
        return item.value === 'money';
    }), 1);
    

    최신 정보

    당신은 또한) (ES6의 findIndex을 사용할 수 있습니다

    myArray.splice(myArray.findIndex(myArray, function(item) {
        return item.value === 'money';
    }), 1);
    

  5. 5.한 줄에 ES6.

    한 줄에 ES6.

    const arr = arr.filter(item => item.key !== "some value");
    

    :)


  6. 6.다음의 jQuery GREP을 사용하여 다른 옵션들 중 하나입니다. 함수와 일치 GREP 제거합니다 항목을 보장하기 위해 세 번째 매개 변수로 true를 전달.

    다음의 jQuery GREP을 사용하여 다른 옵션들 중 하나입니다. 함수와 일치 GREP 제거합니다 항목을 보장하기 위해 세 번째 매개 변수로 true를 전달.

    users = $.grep(users, function(el, idx) {return el.field == "money"}, true)
    

    이미 다음 jQuery를 사용하는 경우 더 심 Array.filter를 사용하여 반대입니다 유용 할 수있는, 필요하지 않습니다.


  7. 7.당신이 jQuery를 사용하지 않는 경우 다음은 코드입니다. 데모

    당신이 jQuery를 사용하지 않는 경우 다음은 코드입니다. 데모

    var myArray = [
        {field: 'id', operator: 'eq', value: 'id'}, 
        {field: 'cStatus', operator: 'eq', value: 'cStatus'}, 
        {field: 'money', operator: 'eq', value: 'money'}
    ];
    
    alert(myArray.length);
    
    for(var i=0 ; i<myArray.length; i++)
    {
        if(myArray[i].value=='money')
            myArray.splice(i);
    }
    
    alert(myArray.length);
    

    또한 기능을 많이 가지고 밑줄 라이브러리를 사용할 수 있습니다.

    밑줄은 함수형 프로그래밍의 많은 지원을 제공하는 자바 스크립트를위한 유틸리티 벨트 라이브러리


  8. 8.

    var myArray = [
        {field: 'id', operator: 'eq', value: id}, 
        {field: 'cStatus', operator: 'eq', value: cStatus}, 
        {field: 'money', operator: 'eq', value: money}
    ];
    console.log(myArray.length); //3
    myArray = $.grep(myArray, function(element, index){return element.field == "money"}, true);
    console.log(myArray.length); //2
    

    요소는 어레이의 목적이다. 함수 논리를 실패 요소의 배열을 반환 3 매개 변수 진정한 수단은 거짓 수단 함수 논리를 실패 요소의 배열을 반환합니다.


  9. 9.위 아래 몇 가지 의견을 바탕으로 어떻게 키 이름과 키 값을 기준으로 개체를 제거하는 코드입니다

    위 아래 몇 가지 의견을 바탕으로 어떻게 키 이름과 키 값을 기준으로 개체를 제거하는 코드입니다

     var items = [ 
      { "id": 3.1, "name": "test 3.1"}, 
      { "id": 22, "name": "test 3.1" }, 
      { "id": 23, "name": "changed test 23" } 
      ]
    
        function removeByKey(array, params){
          array.some(function(item, index) {
            return (array[index][params.key] === params.value) ? !!(array.splice(index, 1)) : false;
          });
          return array;
        }
    
        var removed = removeByKey(items, {
          key: 'id',
          value: 23
        });
    
        console.log(removed);
    

  10. 10.lodash 라이브러리를 사용 :

    lodash 라이브러리를 사용 :

    VAR에 myArray = {필드 'ID'연산자 '당량'값 'ID'}, {필드 'cStatus'연산자 '당량'값 'cStatus'}, {필드 '비용'연산자 '당량'값 '비용'} ]; VAR newArray = _.remove (myArray의 함수 (N) { n.value === '돈'을 반환; }); CONSOLE.LOG ( '배열'); CONSOLE.LOG (myArray의); 을 console.log ( '새 배열'); CONSOLE.LOG (newArray); <스크립트 SRC = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.js">


  11. 11.jAndy의 솔루션은 아마 최고입니다,하지만 당신은 필터에 의존 할 수없는 경우처럼 뭔가를 할 수 :

    jAndy의 솔루션은 아마 최고입니다,하지만 당신은 필터에 의존 할 수없는 경우처럼 뭔가를 할 수 :

    var myArray = [
        {field: 'id', operator: 'eq', value: 'id'}, 
        {field: 'cStatus', operator: 'eq', value: 'cStatus'}, 
        {field: 'money', operator: 'eq', value: "money"}
    ];
    
    myArray.remove_key = function(key){
        var i = 0, 
            keyval = null;
        for( ; i < this.length; i++){
            if(this[i].field == key){
                keyval = this.splice(i, 1);
                break;
            }
        }
        return keyval;
    }
    

  12. 12.당신은 단순히 다음 findIndex 방법을 사용하여 객체의 배열에서 특정 요소를 제거하기 위해 스플 라이스 방법을 사용할 수 있습니다.

    당신은 단순히 다음 findIndex 방법을 사용하여 객체의 배열에서 특정 요소를 제거하기 위해 스플 라이스 방법을 사용할 수 있습니다.

    let index = myArray.findIndex(data=>data.field === 'money');
    myArray.splice(index,1);
    

  13. 13.당신은 스플 ​​라이스 방법을 사용할 수 있습니다 :

    당신은 스플 ​​라이스 방법을 사용할 수 있습니다 :

    myArray.splice (인덱스 1);

    또는 필터에있어서

    myArray.filter (항목 => item.key == "값!");


  14. 14.lodash 라이브러리를 사용하면이 간단하다

    lodash 라이브러리를 사용하면이 간단하다

    _.remove(myArray , { field: 'money' });
    
  15. from https://stackoverflow.com/questions/15287865/remove-array-element-based-on-object-property by cc-by-sa and MIT license