javascript - find nested object key by its value

前端 未结 3 1683
忘了有多久
忘了有多久 2021-01-29 01:27

I\'m trying to find key of object which is containing my value.

There is my object:

var obj = {}

obj[\"post1\"] = {
    \"title\":    \"title1\",
    \         


        
3条回答
  •  我在风中等你
    2021-01-29 02:12

    You can use array map:

    var obj = {}
    
    obj["post1"] = {
        "title":    "title1",
        "subtitle": "subtitle1"
    }
    
    obj["post2"] = {
        "title":    "title2",
        "subtitle": "subtitle2"
    }
    //console.log(obj);
    function obk (obj, val) {
        var result = "";
        Object.keys(obj).map(key => {
            if(obj[key].title === val)
                result = key;
        });
        return result;
    }
    
    console.log(obk(obj, "title2"));

    Or use array find to optimize searching function:

    var obj = {}
    
    obj["post1"] = {
        "title":    "title1",
        "subtitle": "subtitle1"
    }
    
    obj["post2"] = {
        "title":    "title2",
        "subtitle": "subtitle2"
    }
    //console.log(obj);
    function obk (obj, val) {
        result = Object.keys(obj).find(key => {
            if(obj[key].title === val)
                return key;
        });
        return result;
    }
    
    console.log(obk(obj, "title1"));

提交回复
热议问题