如何从一维数组和静态字符串创建对象 [英] How to create an object from one dimensional array and static string

查看:110
本文介绍了如何从一维数组和静态字符串创建对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要一个像

var obj = {
    "ABC" : { name: true, dob: true},
    "CDE" : { name: true, dob: true},
    "EFG" : { name: true, dob: true},
    "CBA" : { name: true, dob: true},
    "XYZ" : { name: true, dob: true},
}



目前我只有数组



currently I have only array of

var arr = ["ABC","CDE","EFG","CBA","XYZ"];






我尝试添加


I have tried adding this with

newArray.push({
    key: arr[i],
    name: true,
    dob: true
});

var newObj = {}

newObj[i] = newArray;

但我无法将此作为整个对象传递给我的代码。当我将其字符串化时,它返回

but I am not able to pass this as an whole object to my code. when I stringify this it returns

{
    '0':"[{
        key: "ABC",
        name: true,
        dob: true
    },{
        key: "CDE",
        name: true,
        dob: true
    }]"
}


推荐答案

您可以使用 Object.assign 来创建对象。使用扩展运算符和 map 重复数组。

You can use Object.assign to create an object. Use spread operator and map to reiterate the array.

var arr = ["ABC", "CDE", "EFG", "CBA", "XYZ"];

var obj = Object.assign(...arr.map(o => ({[o]: {name: true,dob: true}})));
console.log(obj);

另一种选择是使用 reduce 将数组转换为有效对象。

Another option is using reduce to convert the array into a valid object.

var arr = ["ABC", "CDE", "EFG", "CBA", "XYZ"];
var obj = arr.reduce((c, v) => Object.assign(c, {[v]: {name: true,dob: true}}), {});

console.log(obj);

这篇关于如何从一维数组和静态字符串创建对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆