I want to put an array object called hello into a constant called answer. At this time, I want to change the key value of the answer to the value key of hello and the value of the answer to the label value of hello.
how can i do that? i was thinking object entries but i couldn't do that.... is it possible??
this is my code
const hello = [
{ label: 'one', value: 'Tangerinefeed' },
{ label: 'two', value: 'dryexamfeed' },
{ label: 'three', value: 'wetfeed' },
{ label: 'forth', value: 'sawdust' },
{ label: 'five', value: 'etc' },
] ;
expected answer
const answer = {Tangerinefeed: 'one', dryexamfeed: 'two', wetfeed: 'three', sawdust: 'forth', etc: 'five'}
CodePudding user response:
You can use reduce
to achieve it
const hello = [
{ label: 'one', value: 'Tangerinefeed' },
{ label: 'two', value: 'dryexamfeed' },
{ label: 'three', value: 'wetfeed' },
{ label: 'forth', value: 'sawdust' },
{ label: 'five', value: 'etc' },
] ;
const finalResult = hello.reduce((result, item) => {
result[item.value] = item.label
return result
}, {})
console.log(finalResult)
CodePudding user response:
You can do it with forEach method.
const hello = [
{ label: 'one', value: 'Tangerinefeed' },
{ label: 'two', value: 'dryexamfeed' },
{ label: 'three', value: 'wetfeed' },
{ label: 'forth', value: 'sawdust' },
{ label: 'five', value: 'etc' },
] ;
const answer = {};
hello.forEach(a=>{ answer[a.value]=a.label})
console.log(answer);
CodePudding user response:
i would use reduce.. ex:
const answer = hello.reduce((prev, cur) => {
prev[cur.value] = cur.label;
return prev;
}, {});
CodePudding user response:
Have you ever used a map
?
Hope it helps you.
Thank you.
const hello = [
{ label: 'one', value: 'Tangerinefeed' },
{ label: 'two', value: 'dryexamfeed' },
{ label: 'three', value: 'wetfeed' },
{ label: 'forth', value: 'sawdust' },
{ label: 'five', value: 'etc' },
]
let answer = {};
hello.map(h => {
answer[h.value] = h.label;
return true;
});
console.log(answer);