How to get all key in JSON object (javascript)

前端 未结 4 616
慢半拍i
慢半拍i 2020-12-09 08:10
{\"document\":
  {\"people\":[
    {\"name\":[\"Harry Potter\"],\"age\":[\"18\"],\"gender\":[\"Male\"]},
    {\"name\":[\"hermione granger\"],\"age\":[\"18\"],\"gend         


        
相关标签:
4条回答
  • 2020-12-09 08:23

    ES6 of the day here;

    const json_getAllKeys = data => (
      data.reduce((keys, obj) => (
        keys.concat(Object.keys(obj).filter(key => (
          keys.indexOf(key) === -1))
        )
      ), [])
    )
    

    And yes it can be written in very long one line;

    const json_getAllKeys = data => data.reduce((keys, obj) => keys.concat(Object.keys(obj).filter(key => keys.indexOf(key) === -1)), [])
    

    EDIT: Returns all first order keys if the input is of type array of objects

    0 讨论(0)
  • 2020-12-09 08:35

    I use Object.keys which is built into JavaScript Object, it will return an array of keys from given object MDN Reference

    var obj = {name: "Jeeva", age: "22", gender: "Male"}
    console.log(Object.keys(obj))
    
    0 讨论(0)
  • 2020-12-09 08:47

    Try this

    var s = {name: "raul", age: "22", gender: "Male"}
       var keys = [];
       for(var k in s) keys.push(k);
    

    Here keys array will return your keys ["name", "age", "gender"]

    0 讨论(0)
  • 2020-12-09 08:49
    var input = {"document":
      {"people":[
        {"name":["Harry Potter"],"age":["18"],"gender":["Male"]},
        {"name":["hermione granger"],"age":["18"],"gender":["Female"]},
      ]}
    }
    
    var keys = [];
    for(var i = 0;i<input.document.people.length;i++)
    {
        Object.keys(input.document.people[i]).forEach(function(key){
            if(keys.indexOf(key) == -1)
            {
                keys.push(key);
            }
        });
    }
    console.log(keys);
    
    0 讨论(0)
提交回复
热议问题