복붙노트

[JQUERY] 자바 스크립트 객체의 필터 어레이

JQUERY

자바 스크립트 객체의 필터 어레이

해결법


  1. 1.당신은 jQuery.grep ()를 사용할 수 있습니다 :

    당신은 jQuery.grep ()를 사용할 수 있습니다 :

    var found_names = $.grep(names, function(v) {
        return v.name === "Joe" && v.age < 30;
    });
    

    DEMO : http://jsfiddle.net/ejPV4/


  2. 2.당신은 [] .filter 방법으로 아주 쉽게 할 수 있습니다 :

    당신은 [] .filter 방법으로 아주 쉽게 할 수 있습니다 :

    var filterednames = names.filter(function(obj) {
        return (obj.name === "Joe") && (obj.age < 30);
    });
    

    이 MDN 페이지가 같은 코드를 제공합니다 : 당신은 [] .filter 메소드를 지원하지 않는 브라우저에 대한 심의를 추가해야합니다.


  3. 3.당신은 일치하는 요소의 하위 집합에서 요소를 반환 jQuery.filter () 함수를 이용할 수 있습니다.

    당신은 일치하는 요소의 하위 집합에서 요소를 반환 jQuery.filter () 함수를 이용할 수 있습니다.

    VAR 이름 = [ {이름 : "조", 연령 : 20, 이메일 : "joe@hotmail.com"}, {이름 : "마이크", 연령 : 50, 이메일 : "mike@hotmail.com"}, {이름 : "조", 연령 : 45, 이메일 : "mike@hotmail.com"} ]; VAR filteredNames = $ (이름) .filter (기능 (IDX) { 창 이름 [IDX] === .name을 "조"&& 이름 [IDX] .age <30; }); $ (filteredNames) .each (함수 () { . $ ( '# 출력') APPEND (this.name); }); <스크립트 SRC = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">


  4. 4.VAR 이름 목록 = {이름 : 'x'를, 연령 : 20, 이메일 : 'x@email.com '} {이름 : 'Y', 연령 : 60, 이메일 : 'y@email.com '} {이름 : '조', 연령 : 22, 이메일 : 'joe@email.com '} {이름 : 'ABC', 연령 : 40, 이메일 : 'abc@email.com '} ]; VAR filteredValue nameList.filter = (함수 (항목) { item.name == "조"&& item.age <30를 반환; }); 배열로 //을 참조하십시오 출력 결과 CONSOLE.LOG (JSON.stringify (filteredValue));

    VAR 이름 목록 = {이름 : 'x'를, 연령 : 20, 이메일 : 'x@email.com '} {이름 : 'Y', 연령 : 60, 이메일 : 'y@email.com '} {이름 : '조', 연령 : 22, 이메일 : 'joe@email.com '} {이름 : 'ABC', 연령 : 40, 이메일 : 'abc@email.com '} ]; VAR filteredValue nameList.filter = (함수 (항목) { item.name == "조"&& item.age <30를 반환; }); 배열로 //을 참조하십시오 출력 결과 CONSOLE.LOG (JSON.stringify (filteredValue));

    당신은 단순히 자바 스크립트를 사용할 수 있습니다 :


  5. 5.어떤 키를 사용하여 객체의 배열에서 필터 싶은 분들을 위해 :

    어떤 키를 사용하여 객체의 배열에서 필터 싶은 분들을 위해 :

    함수 filterItems (항목 searchVal) { 반환 items.filter ((항목) => Object.values ​​(항목) .includes (searchVal)); } = [데이터하자 { "이름": "사과", "유형": "과일", "ID": 123234} { "이름": "고양이", "유형": "동물", "ID": 98989} { "이름": "뭔가", "유형": "기타", "ID": 656565}] 을 console.log ( "이름으로 필터링 :"filterItems (데이터, "사과")); CONSOLE.LOG ( "유형에 의해 필터링", filterItems (데이터 "동물")); ( "ID에 의해 필터링", filterItems (데이터, 656,565)) CONSOLE.LOG;

    JSON 배열에서 필터 오브젝트 **


  6. 6.VAR 이름 = [{ 이름 : "조" 연령 : 20 이메일 : "joe@hotmail.com" }, { 이름 : "마이크" 나이 : 50, 이메일 : "mike@hotmail.com" }, { 이름 : "조" 나이 : 45, 이메일 : "mike@hotmail.com" } ]; CONST 입술 _.filter = (명 (이름) => { name.name == "조"&& name.age <30를 반환; }); CONSOLE.LOG (해상도); <스크립트 SRC = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.js">

    VAR 이름 = [{ 이름 : "조" 연령 : 20 이메일 : "joe@hotmail.com" }, { 이름 : "마이크" 나이 : 50, 이메일 : "mike@hotmail.com" }, { 이름 : "조" 나이 : 45, 이메일 : "mike@hotmail.com" } ]; CONST 입술 _.filter = (명 (이름) => { name.name == "조"&& name.age <30를 반환; }); CONSOLE.LOG (해상도); <스크립트 SRC = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.js">


  7. 7.그래서 빠른 질문입니다. 당신이 객체의 두 배열을 가지고 있고 당신은 확실히 각 배열의 객체가 다른 배열의 같은 순서대로 할 수 있도록 이러한 객체 배열 '정렬'을 좋아하면? 당신이 객체의 배열의 내부에 어떤 키와 값을 모르는 경우 ... 훨씬 적은 무엇도에있어 주문할 포함?

    그래서 빠른 질문입니다. 당신이 객체의 두 배열을 가지고 있고 당신은 확실히 각 배열의 객체가 다른 배열의 같은 순서대로 할 수 있도록 이러한 객체 배열 '정렬'을 좋아하면? 당신이 객체의 배열의 내부에 어떤 키와 값을 모르는 경우 ... 훨씬 적은 무엇도에있어 주문할 포함?

    당신의 '와일드 카드 식'이 필요 귀하의 [] .filter, [] .MAP 등이 어떻게 와일드 카드 식을 얻을 수 있습니까?

    var jux = (function(){
        'use strict';
    
        function wildExp(obj){
            var keysCrude = Object.keys(obj),
                keysA = ('a["' + keysCrude.join('"], a["') + '"]').split(', '),
                keysB = ('b["' + keysCrude.join('"], b["') + '"]').split(', '),
                keys = [].concat(keysA, keysB)
                    .sort(function(a, b){  return a.substring(1, a.length) > b.substring(1, b.length); });
            var exp = keys.join('').split(']b').join('] > b').split(']a').join('] || a');
            return exp;
        }
    
        return {
            sort: wildExp
        };
    
    })();
    
    var sortKeys = {
        k: 'v',
        key: 'val',
        n: 'p',
        name: 'param'
    };
    var objArray = [
        {
            k: 'z',
            key: 'g',
            n: 'a',
            name: 'b'
        },
        {
            k: 'y',
            key: 'h',
            n: 'b',
            name: 't'
        },
        {
            k: 'x',
            key: 'o',
            n: 'a',
            name: 'c'
        }
    ];
    var exp = jux.sort(sortKeys);
    
    console.log('@juxSort Expression:', exp);
    console.log('@juxSort:', objArray.sort(function(a, b){
        return eval(exp);
    }));
    

    또한 각 개체의 모든 키에 대한 더 나은 집단 표현식을 작성하는 각 개체에 대해 반복을 통해이 기능을 사용하고 배열 방법이를 필터링 할 수 있습니다.

    이것은 면제, 객체의 단일성, 및 배열 응축이, 객체 평등하지 내가 거의 완료 가지고있는 API 나란히에서 작은 조각이다. 이러한 일들은 당신이 필요하거나 프로젝트하시기 바랍니다 코멘트 원하는 경우에 나는 조만간 lib 디렉토리에 액세스 할 수 있도록합니다.

    도움이 되었기를 바랍니다! 행복 : 코딩


  8. 8.가장 간단하고 읽을 수있는 방법은 기본 자바 스크립트 필터 방식의 사용됩니다.

    가장 간단하고 읽을 수있는 방법은 기본 자바 스크립트 필터 방식의 사용됩니다.

    자바 네이티브 필터 배열 요소를 필터링의 선언적 방식 걸린다. 이 Array.prototype으로 정의하는 방법이기 때문에, 제공된 배열 반복 처리 그것에 콜백을 호출한다. 우리의 필터링 기능의 역할이 콜백은 세 개의 파라미터를 취

    요소 - 배열의 존재에서 현재 항목 위에 반복

    인덱스 - 이상 반복되는 배열의 현재 요소의 위치 또는 색인

    어레이 - 필터 방법에 적용되었는지 원래 배열 다음의 예제에서이 필터 방법을 사용하자. 필터 어레이의 모든 종류에 적용될 수 있다는 것을 유의하여야한다. 이 예에서는, 오브젝트 속성에 기초하여 오브젝트의 배열을 필터링하려고한다.

    이 같은 것을 볼 수 있었다 개체 속성에 기반하여 객체의 배열을 필터링의 예 :

    // Please do not hate me for bashing on pizza and burgers.
    // and FYI, I totally made up the healthMetric param :)
    let foods = [
      { type: "pizza", healthMetric: 25 },
      { type: "burger", healthMetric: 10 },
      { type: "salad", healthMetric: 60 },
      { type: "apple", healthMetric: 82 }
    ];
    let isHealthy = food => food.healthMetric >= 50;
    
    const result = foods.filter(isHealthy);
    
    console.log(result.map(food => food.type));
    // Result: ['salad', 'apple']
    

    기능의 배열을 필터링에 대한 자세한 내용과, 자신의 필터링을 구축이 문서를 체크 아웃 : https://medium.com/better-programming/build-your-own-filter-e88ba0dcbfae

  9. from https://stackoverflow.com/questions/13594788/javascript-filter-array-of-objects by cc-by-sa and MIT license