Javascript 如何将字符串数组转换为对象?
我有一个数组属性的对象。为了获得可接受的输出,我做了两个 代码中的方法 方法1:将在对象中显示对象数组而不是字符串值数组。Javascript 如何将字符串数组转换为对象?,javascript,arrays,object,functional-programming,Javascript,Arrays,Object,Functional Programming,我有一个数组属性的对象。为了获得可接受的输出,我做了两个 代码中的方法 方法1:将在对象中显示对象数组而不是字符串值数组。 方法2:将显示我已接受的输出 let data = { Invoice: ["can_view", "can_create", "can_edit", "can_delete"], license: ["can_view", "can_create", "can_edit", "can_delete"] } 问题是我在方法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中应该改变什么
//方法1:
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"},
}
您可以使用一个映射的条目数组
var permissions=[“可以查看”、“可以创建”、“可以编辑”、“可以删除”],
result=Object.fromEntries(permissions.map(value=>[value,{value}]);
控制台日志(结果)代码>您可以使用映射的条目数组执行
var permissions=[“可以查看”、“可以创建”、“可以编辑”、“可以删除”],
result=Object.fromEntries(permissions.map(value=>[value,{value}]);
控制台日志(结果)
如果有对象和名称,只需获取相应的数组并使用将其转换为键,键是给定的数组项,值是{value:}
。最后,使用以下方法构造对象:
let数据={
发票:[“可以查看”、“可以创建”、“可以编辑”、“可以删除”],
许可证:[“可以查看”、“可以创建”、“可以编辑”、“可以删除”]
}
函数convertdatatoObj(值,组){
if(!value&&!Array.isArray(value[group]))
返回;
返回Object.fromEntries(
值[group].map(权限=>[permission,{value:permission}])
)
}
让结果=convertdatatoObj(数据,“发票”)
log(result)
如果您有对象和名称,您只需获取相应的数组并使用将其转换为键,键是给定的数组项,值是{value:}
。最后,使用以下方法构造对象:
let数据={
发票:[“可以查看”、“可以创建”、“可以编辑”、“可以删除”],
许可证:[“可以查看”、“可以创建”、“可以编辑”、“可以删除”]
}
函数convertdatatoObj(值,组){
if(!value&&!Array.isArray(value[group]))
返回;
返回Object.fromEntries(
值[group].map(权限=>[permission,{value:permission}])
)
}
让结果=convertdatatoObj(数据,“发票”)
console.log(result)
那么,方法2中的value
应该从一开始就使用数据吗?是的,现在,我从方法1传递数据,但是现在,它应该是dataSo,方法2中的value
应该从一开始就使用数据吗?是的,现在,我从方法1传递数据,但是现在,它应该是数据例如,let data={Invoice:[“can_view”,“can_create”,“can_edit”,“can_delete”],license:[“can_view”,“can_create”],}什么是代码格式?结果应该是什么?你能看看这个吗?例如,let data={Invoice:[“can_view”,“can_create”,“can_edit”,“can_delete”],license:[“can_view”可以创建“”],}代码格式是什么?结果应该是什么?你能看这个吗?你能看这个吗-你能看这个吗-