javascript - 如何使用es6的filter或reduce来破坏对象属性?

标签 javascript arrays ecmascript-6

尝试使用reduce方法删除对象属性,但它没有返回预期的响应,在下面的用例中使用什么是正确的方法?过滤或减少?

main.js

const filtered = Object.keys(transformedResponse).reduce((res, key) => {

       delete res.drugName;
       delete res.mailPrice. copayEmployer
       delete res.retailPrice. copayEmployer
      return res;
    }, {});

转换后的响应

const transformedResponse = [
    {
        "isBrand": true,
        "drugName": "Lipitor",
        "drugStrength": "80 mg",
        "drugForm": "Tablet",
        "mailPrice": {
            "copayEmployer": 0,
            "prop2": "test"
        },
        "retialPrice": {
            "copayEmployer": 0,
            "prop2": "test"
        }

    }, {
        "isBrand": true,
        "drugName": "Metformin",
        "drugStrength": "500 mg",
        "drugForm": "Tablet",
        "mailPrice": {
            "copayEmployer": 50,
            "prop2": "test"
        },
        "retailPrice": {
            "copayEmployer": 0,
            "prop2": "test"
        }
    }

]

预期输出

[
    {
        "isBrand": true,
        "drugStrength": "80 mg",
        "drugForm": "Tablet",
        "mailPrice": {
            "prop2": "test"
        },
        "retialPrice": {
            "prop2": "test"
        }

    }, {
        "isBrand": true,
        "drugStrength": "500 mg",
        "drugForm": "Tablet",
        "mailPrice": {
            "prop2": "test"
        },
        "retailPrice": {
            "prop2": "test"
        }
    }

]

最佳答案

您可以使用map过滤结果

var x = transformedResponse.map((obj) => {
  return {
        "isBrand": obj.isBrand,
        "drugStrength": obj.drugStrength,
        "drugForm": obj.drugForm,
        "mailPrice": {
            "prop2": obj.mailPrice.prop2
        },
        "retailPrice": {
            "prop2": obj.retailPrice.prop2
        }
  }
});

console.log(x);

Map 迭代给定数组中的每个项目并返回一个新数组。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

关于javascript - 如何使用es6的filter或reduce来破坏对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56173304/

相关文章:

javascript - 如何向每个 AngularJS $scope 添加一致的变量或函数?

javascript - D3 : How to do an update pattern on normalized stacked bar chart?

javascript - Grails 2.2.4中如何仅在特定页面加载某些JS资源

javascript - 在 React 中,如何将对象数组作为查询字符串传递到端点 url?

javascript - React 使用外部函数作为方法

javascript - JavaScript 中 'this' 关键字行为的基本原理是什么?

javascript - 如何对数组中的偶数升序和奇数降序排序?

java - 数组的 Arrays.asList()

javascript - 将属性添加到类似于长度的javascript数组

javascript - 无法迭代 React Native 中的本地资源