如何从数组中过滤多个项目并添加到对象中?

How do I filter multiple items from an array and add to an object?

取下面的数组:

[
    {
        ndc: '0093415580',
        name: 'Amoxicillin',
        prescribing_physician: 'John Doe',
        quantity: 150,
        day_supply: 10,
        pharmacy: 'Walmart',
        source: 'Auto',
    },
    {
        ndc: '499990882',
        name: 'Lipitor',
        prescribing_physician: 'John Doe',
        quantity: 10,
        day_supply: 30,
        pharmacy: 'CVS Health',
        source: 'Auto',
    },
    {
        ndc: '5528947530',
        name: 'Celebrix',
        prescribing_physician: 'John Doe',
        quantity: 25,
        day_supply: 30,
        pharmacy: 'CVS Health',
        source: 'Manual',
    },
];

如何过滤掉所有 nameday_supply 并将它们设置为键和值对,放入包含对象的数组中?

myArr = [
    {
        name: 'Amoxicillin',
        value: '10'
    },
    {
        name: 'Lipitor',
        value: '30'
    },
    {
        name: 'Celebrix,
        value: '30'
    }
];

您可以使用 Array.map 来处理每个对象,仅返回 nameday_supply(如 value)值:

const data = [{
    ndc: '0093415580',
    name: 'Amoxicillin',
    prescribing_physician: 'John Doe',
    quantity: 150,
    day_supply: 10,
    pharmacy: 'Walmart',
    source: 'Auto',
  },
  {
    ndc: '499990882',
    name: 'Lipitor',
    prescribing_physician: 'John Doe',
    quantity: 10,
    day_supply: 30,
    pharmacy: 'CVS Health',
    source: 'Auto',
  },
  {
    ndc: '5528947530',
    name: 'Celebrix',
    prescribing_physician: 'John Doe',
    quantity: 25,
    day_supply: 30,
    pharmacy: 'CVS Health',
    source: 'Manual',
  },
];

const myArr = data.map(({ name, day_supply }) => ({ name,  value: day_supply }));
console.log(myArr);

const myObj = Object.fromEntries(data.map(({ name, day_supply }) => [name, day_supply]));
console.log(myObj);

请注意,您可能会发现具有 name 值作为属性的对象更有用,上面的代码片段显示了如何使用 Object.fromEntries.

生成该对象