Reputation: 35
I have this JavaScript object:
const DayOfWeek = [
{ key: 'MON', value: 'M' },
{ key: 'TUE', value: 'T' },
{ key: 'WED', value: 'W' },
{ key: 'THU', value: 'T' },
{ key: 'FRI', value: 'F' },
{ key: 'SAT', value: 'S' },
{ key: 'SUN', value: 'S' },
];
Note: If frequencyDayOfWeek is WED
replace with object { key: 'WED', value: 'W' }
let frequencyDayOfWeek = [
"WED",
"THU",
"FRI",
"SAT"
];
frequencyDayOfWeek.map((day, index) => { //not working
day.find((data, i) => {
if (DayOfWeek[i].key == data) {
//return match arrays of object;
// [{ key: 'MON', value: 'M' }]
// [{ key: 'WED', value: 'W' }]
}
})
});
So here is the result I want to get:
"frequencyDayOfWeek": [
{ key: 'WED', value: 'W' },
{ key: 'THU', value: 'T' },
{ key: 'FRI', value: 'F' },
{ key: 'SAT', value: 'S' },
]
How can I implement it using JavaScript?
Upvotes: 0
Views: 74
Reputation: 44
frequencyDayOfWeek.map(f => DayOfWeek.find(d => d.key === f));
Upvotes: 0
Reputation: 54659
You need to return a value from the mapping function.
For example:
const DayOfWeek = [
{ key: 'MON', value: 'M' },
{ key: 'TUE', value: 'T' },
{ key: 'WED', value: 'W' },
{ key: 'THU', value: 'T' },
{ key: 'FRI', value: 'F' },
{ key: 'SAT', value: 'S' },
{ key: 'SUN', value: 'S' },
];
let frequencyDayOfWeek = [
"WED",
"THU",
"FRI",
"SAT"
];
const out = frequencyDayOfWeek.map(k => {
// actually return a value
return DayOfWeek.find(x => x.key === k);
});
// or short:
// const out = frequencyDayOfWeek.map(k => DayOfWeek.find(x => x.key === k));
console.log(out);
Upvotes: 1