devnext
devnext

Reputation: 902

How to get object value with keyword in node

how i can to get object with keyword . also i want to get object value that include "_score" in object name i try to Object.key() but it not get child

i have this object

const data : {
    name : "johny",
    lname : "walker",
    a_score : 30,
    b_score : 40,
    result : {
                 c_score : 50,
                 d_score : 60
             }
}

how i can to return this data

{ 
    a_score : 30, 
    b_score :40, 
    c_score :50,
    d_score :60
}

Upvotes: 0

Views: 48

Answers (1)

Nenad Vracar
Nenad Vracar

Reputation: 122057

You can use reduce() method to create recursive function for this.

const data = {"name":"johny","lname":"walker","a_score":30,"b_score":40,"result":{"c_score":50,"d_score":60}}

const pick = (obj, key) => {
  return Object.keys(obj).reduce((r, e) => {
    if (typeof obj[e] == 'object') Object.assign(r, pick(obj[e], key))
    if (e.includes(key)) r[e] = obj[e]
    return r;
  }, {})
}

console.log(pick(data, '_score'))

Upvotes: 1

Related Questions