javascript - 基于字符串创建具有动态属性名称的对象

标签 javascript arrays object

我有这个对象数组:

[
    {
        "id": 4,
        "user_id": 1,
        "business_id": 2,
        "branch_id": 3,
        "type": "service",
        "item": "Typing",
        "unitPrice": 100,
        "bulkUnit": 20,
        "bulkUnitPrice": 80,
        "availableUnits": "NA",
        "created_at": "2019-05-03 11:36:33",
        "updated_at": "2019-05-03 11:36:33"
    },
    {
        "id": 5,
        "user_id": 1,
        "business_id": 2,
        "branch_id": 3,
        "type": "service",
        "item": "Printing",
        "unitPrice": 70,
        "bulkUnit": 50,
        "bulkUnitPrice": 40,
        "availableUnits": "NA",
        "created_at": "2019-05-03 11:37:29",
        "updated_at": "2019-05-03 11:37:29"
    }
]

对于每个对象,我需要使用 item 属性的值作为新对象中的属性名称,如下所示:

{
    "Typing":  null,
    "Printing":  null
}

最佳答案

您可以使用 Array.prototype.map() 的组合来实现此目的和 Object.fromEntries() .

const data = [
{"id":4,"user_id":1,"business_id":2,"branch_id":3,"type":"service","item":"Typing","unitPrice":100,"bulkUnit":20,"bulkUnitPrice":80,"availableUnits":"NA","created_at":"2019-05-03 11:36:33","updated_at":"2019-05-03 11:36:33"},
{"id":5,"user_id":1,"business_id":2,"branch_id":3,"type":"service","item":"Printing","unitPrice":70,"bulkUnit":50,"bulkUnitPrice":40,"availableUnits":"NA","created_at":"2019-05-03 11:37:29","updated_at":"2019-05-03 11:37:29"}
];

const result = Object.fromEntries(data.map(x => [x.item, null]));
console.log(result)

关于javascript - 基于字符串创建具有动态属性名称的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55973964/

相关文章:

javascript - jQuery爬虫大对象/$.each/Ajax IN然后Ajax OU

javascript - 在这种情况下如何修复 css 填充?

javascript - 将值设置为输入字段 onchange 从其他输入字段

c - C 中的二维数组不起作用 - 运行时错误

arrays - C 数组的奇怪行为

javascript - 在 JavaScript 中创建数组集合?

ruby - 在 Ruby 中用单 '@' 和双 '@' 声明对象的区别

class - 接口(interface)契约,类对象?

javascript - hapijs - 在插件完成注册之前无法启动服务器

javascript - 将数据传递给框架中的组件时有哪些最佳实践?