再帰を使用してJavaScriptでオブジェクトデータをフィルタリングする

トマシュ・タラソビッチ

他のオブジェクトを含むオブジェクトがあります。このオブジェクトのキーは、未定義、定義済み、または空にすることができます。私はこれらのキーの定義された値にのみ興味があり、空の値には興味がありません。例を示します:データオブジェクト

var d = {
    google: {
        email: 'zurb @gmail.com',
        name: 'k-pop Dorama',
        token: 'ya2XObIhOB63qjwlw',
        id: '11971093321'
    },
    twitter: {
        displayName: 'Smart as a Genius',
        id: '47252187865',
        name: 'Paul Peter',
        token: '47252ijoGYJ40bFAKvX'
    },
    facebook: {
        email: '',
        id: '1112961258784387',
        name: 'Tomash Khamlai',
        token: 'ERUTT8xK2oE7ZD'
    }
}

収集したいフィールド:

var f = ["name", "email"];

私が試した関数:

function iterate(data, fields) {
    var response = Object.create({}, "");
    var property;
    for (property in data) {
        if (data.hasOwnProperty(property)) {
            if (typeof data[property] === "object")
                iterate(data[property], fields);
            else {
                fields.forEach(function(element) {
                    if (property === element) {
                        if (data[property] !== "") {
                            if (!response[element]) {
                                response[element] = [];
                                response[element].push(data[property]);
                            } else {
                                response[element].push(data[property]);;
                            }
                        }
                    }
                });
            }
        }
    }
}

iterate(d, f);

期待:

 console.log(response);

{ name: ["k-pop Dorama", "Paul Peter", "Tomash Khamlai"], email: ["[email protected]"] }
ディメジアビドエ
function isObj(obj, prop){
    return  typeof obj[prop] === "object"
}

function notContains(array, value){
   return !array.includes(value) ;
}

function getter(data, fields){
    var response = {}; 

    (function iterate(data, fields){
        Object.keys(data).forEach(function(prop){
            if (isObj(data, prop)) iterate(data[prop], fields);
            else{
                fields.forEach(function (elem){
                    if(!response[elem]) response[elem] = [];
                    if(!!data[elem] && notContains(response[elem], data[elem])) response[elem].push(data[elem]);
                });
            }
        });
    })(data, fields);
return response;
}

ちょっと、読みやすくするためにいくつかのヘルパー関数を使用して元のコードを書き直しました。これはあなたが探しているものを手に入れるはずです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

javascriptを使用して配列オブジェクトの配列オブジェクト内のデータをフィルタリングする

分類Dev

大きなjavascriptオブジェクトを再帰的にフィルタリングする

分類Dev

データ属性でオブジェクトをフィルタリングし、使用するたびにフィルターをリセットします

分類Dev

Javascriptを使用してオブジェクトのディープフィルタリングを行う方法

分類Dev

Javascriptを使用してオブジェクトのディープフィルタリングを行う方法

分類Dev

オブジェクトのフィールドを使用してArrayListをフィルタリングする

分類Dev

キーでjavascriptオブジェクトをフィルタリングする

分類Dev

あるオブジェクトを別のオブジェクトで再帰的にフィルタリングする

分類Dev

ネストされたオブジェクトを再帰的にフィルタリング/削減します

分類Dev

paramsを使用してSailsjsでデータベースオブジェクトをフィルタリングする方法

分類Dev

Javaストリームを使用してオブジェクトをフィルタリングする方法は?

分類Dev

JavaScriptを使用して複雑なJSONオブジェクトをフィルタリングする方法

分類Dev

フィルタを使用してオブジェクトをフィルタリングする

分類Dev

オブジェクトの配列を再帰的にフィルタリングする

分類Dev

オブジェクトの配列を再帰的にフィルタリングする

分類Dev

JavaScriptオブジェクトループ-重複を一度フィルタリングして表示する

分類Dev

Bokeh:2つのインタラクティブウィジェットを使用してCustomJSでデータセットをフィルタリングする

分類Dev

jquerygrepを使用して値の配列でjsonオブジェクトをフィルタリングする

分類Dev

Javascriptで同じオブジェクト配列値をフィルタリングして計算する方法

分類Dev

C#LINQを使用して、オブジェクトのリストで最大値を持つ各オブジェクトをフィルタリングする

分類Dev

javascriptでjsonオブジェクトをフィルタリングする

分類Dev

外部キーをパラメーターとして使用してDjangoでオブジェクトをフィルタリングする

分類Dev

ページIDでデータオブジェクトをフィルタリングするSilvertStripe3

分類Dev

オブジェクトのリストをフィルタリングしてオブジェクトのリストをフィルタリングする

分類Dev

Lodash / JSを使用してネストされたオブジェクトを再帰的にフィルタリングするにはどうすればよいですか?

分類Dev

javascriptの別のオブジェクトでオブジェクトをフィルタリングする

分類Dev

jsonオブジェクトを別のオブジェクトでフィルタリングする方法-Javascript

分類Dev

nodejsでJSONデータ(オブジェクト配列を含む)をフィルタリングする

分類Dev

jqを使用してjsonデータのオブジェクトキーをフィルタリングするためのより短い構成

Related 関連記事

  1. 1

    javascriptを使用して配列オブジェクトの配列オブジェクト内のデータをフィルタリングする

  2. 2

    大きなjavascriptオブジェクトを再帰的にフィルタリングする

  3. 3

    データ属性でオブジェクトをフィルタリングし、使用するたびにフィルターをリセットします

  4. 4

    Javascriptを使用してオブジェクトのディープフィルタリングを行う方法

  5. 5

    Javascriptを使用してオブジェクトのディープフィルタリングを行う方法

  6. 6

    オブジェクトのフィールドを使用してArrayListをフィルタリングする

  7. 7

    キーでjavascriptオブジェクトをフィルタリングする

  8. 8

    あるオブジェクトを別のオブジェクトで再帰的にフィルタリングする

  9. 9

    ネストされたオブジェクトを再帰的にフィルタリング/削減します

  10. 10

    paramsを使用してSailsjsでデータベースオブジェクトをフィルタリングする方法

  11. 11

    Javaストリームを使用してオブジェクトをフィルタリングする方法は?

  12. 12

    JavaScriptを使用して複雑なJSONオブジェクトをフィルタリングする方法

  13. 13

    フィルタを使用してオブジェクトをフィルタリングする

  14. 14

    オブジェクトの配列を再帰的にフィルタリングする

  15. 15

    オブジェクトの配列を再帰的にフィルタリングする

  16. 16

    JavaScriptオブジェクトループ-重複を一度フィルタリングして表示する

  17. 17

    Bokeh:2つのインタラクティブウィジェットを使用してCustomJSでデータセットをフィルタリングする

  18. 18

    jquerygrepを使用して値の配列でjsonオブジェクトをフィルタリングする

  19. 19

    Javascriptで同じオブジェクト配列値をフィルタリングして計算する方法

  20. 20

    C#LINQを使用して、オブジェクトのリストで最大値を持つ各オブジェクトをフィルタリングする

  21. 21

    javascriptでjsonオブジェクトをフィルタリングする

  22. 22

    外部キーをパラメーターとして使用してDjangoでオブジェクトをフィルタリングする

  23. 23

    ページIDでデータオブジェクトをフィルタリングするSilvertStripe3

  24. 24

    オブジェクトのリストをフィルタリングしてオブジェクトのリストをフィルタリングする

  25. 25

    Lodash / JSを使用してネストされたオブジェクトを再帰的にフィルタリングするにはどうすればよいですか?

  26. 26

    javascriptの別のオブジェクトでオブジェクトをフィルタリングする

  27. 27

    jsonオブジェクトを別のオブジェクトでフィルタリングする方法-Javascript

  28. 28

    nodejsでJSONデータ(オブジェクト配列を含む)をフィルタリングする

  29. 29

    jqを使用してjsonデータのオブジェクトキーをフィルタリングするためのより短い構成

ホットタグ

アーカイブ