首页 > 解决方案 > 如何将键值对数组转换为以第一个数组的值作为键的对象?

问题描述

我的后端正在返回如下数据。

   var permissions = [{"PermCode":"BOF","IsvalidPerm":true},{"PermCode":"CM","IsvalidPerm":false},{"PermCode":"CV","IsvalidPerm":true},{"PermCode":"DAS","IsvalidPerm":true},{"PermCode":"RPT","IsvalidPerm":true},{"PermCode":"VM","IsvalidPerm":true}]

如何将其转换为 Objectof 对象,如下所示

{BOF:true,CM:true, ...}

提前致谢。

标签: javascriptarraysobject

解决方案


你可以使用一些 ES6 语法,使用Object.assign, 扩展语法,计算属性,然后它真的变得非常函数式编程风格:

var permissions = [{"PermCode":"BOF","IsvalidPerm":true},{"PermCode":"CM","IsvalidPerm":false},{"PermCode":"CV","IsvalidPerm":true},{"PermCode":"DAS","IsvalidPerm":true},{"PermCode":"RPT","IsvalidPerm":true},{"PermCode":"VM","IsvalidPerm":true}];

const result = Object.assign(...permissions.map(
    ({PermCode, IsvalidPerm}) => ({[PermCode]: IsvalidPerm})
));

console.log(result);


推荐阅读