简体   繁体   English

用对象替换数组值

[英]Replacing array value with objects

I have this JavaScript object:我有这个 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' }注意:如果 frequencyDayOfWeek 是WED替换为 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?如何使用 JavaScript 实现它?

You need to return a value from the mapping function.您需要从映射 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);

frequencyDayOfWeek.map(f => DayOfWeek.find(d => d.key === f));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM