tabrown76
tabrown76

Reputation: 1

Get object values without using Object.values()

I just started learning to code and am working on this challenge. Having issues finding any relevant guidance online. Thanks in advance.

function keys(json) {
    var obj = JSON.parse(json);
    let result = [];
    for (const key in obj) {
        result.push(key);
    }
    return result;
}

I got this to work for returning keys without using Object.keys and I sort of assumed I could just swap the 'key' for 'value' but that didn't work.

function keys(json) {
    var obj = JSON.parse(json);
    var values = Object.keys(obj).map((key,value)=>{ values.push(value) });
    return values;
}

Also tried this, but I don't really understand the map function yet.

Upvotes: 0

Views: 474

Answers (2)

Andrew Parks
Andrew Parks

Reputation: 8107

Is this what you are looking for?

const obj = {a:3, b:4}

const result = []
for (const key in obj) {
  result.push(obj[key])
}

console.log(result)

Upvotes: 1

Nina Scholz
Nina Scholz

Reputation: 386766

With Object.keys you get an array of keys (own, enummerable) of the array. for mapping values, you need to take a property accessor with object and key.

function values(json) {
    const object = JSON.parse(json);
    return Object
        .keys(object)
        .map(key => object[key]);
}

console.log(values('{"foo":"bar","baz":42}'));

Upvotes: 0

Related Questions