【发布时间】:2020-07-15 09:52:54
【问题描述】:
我有一个数组属性对象。为了获得接受的输出,我做了两个 代码中的方法。
方法1:将显示对象数组而不是对象内部的字符串值数组。
方法 2:将显示我接受的输出。
let data = {
Invoice: ["can_view", "can_create", "can_edit", "can_delete"],
license: ["can_view", "can_create", "can_edit", "can_delete"]
}
问题是我在方法 1 中做了一个额外的循环来获取对象数组。然后它转换为接受数据的方法
我不需要方法 1,我想获取我接受的基于数据的字符串数组。
在方法 2 中应该改变什么?
// 方法一:
let values = Object.entries(data).map(([key, values]) => ({
[key]: values.map(v => ({ label: v, value: v }))
}));
console.log(values)
// 方法:2
function convertdatatoObj (value,group){
let permissionAccess;
let permissionArray = value && value.filter(item => item[group]);
const permissionObj = Object.assign({}, permissionArray);
let res =
permissionObj[0] &&
permissionObj[0][group] &&
permissionObj[0][group].map(item => {
return {
value: item.value
};
});
const obj = Object.assign({}, res);
permissionAccess = Object.fromEntries(
Object.entries(obj) && Object.entries(obj).map(([k, v]) => [v.value, v])
);
return permissionAccess;
}
let result = convertdatatoObj(values,"Invoice")
console.log(result)
// My accepeted Output would be this format:
let res = {
can_view: {value: "can_view"},
can_create: {value: "can_create"},
can_edit: {value: "can_edit"},
can_delete: {value: "can_delete"},
}
【问题讨论】:
-
那么,Method2 中的
value是否应该从一开始就使用data? -
是的,现在,我正在从方法 1 传递数据,但现在应该是数据
标签: javascript arrays object functional-programming