javascript - 将对象转换为对象字典

标签 javascript node.js dictionary hashmap

我有一个带有未知键/值对的对象

myObj = {
    key_1: value_1,
    key_2: value_2,
    key_n: value_n
}
我想把它转换成这样一个结构化对象的字典:
dictOfStructureObjects =
{
 key_1: {
  name: value_1,
  type: 'foo'},
 key_2: {
  name: value_2,
  type: 'foo'},
 key_n: {
  name: value_n,
  type: 'foo'}
}
我试过这个:
var dic = snapshot.val();
var arr = Object.keys(dic || {});
var names = arr.map(element => {
    var rObj = {};
    rObj[element.value] = {name: dic[element.value], type: 'foo'};
});
但我认为尝试使用其属性 value 引用数组元素的值是不正确的...

最佳答案

正如评论中所指出的,您的预期输出不是有效的数组。

如果你想要一个有效的数组,你可以这样做:

function convert(obj) {
    return Object.keys(obj).map(key => ({
        name: key,
        value: obj[key],
        type: "foo"
    }));
}

const myObj = {
    key_1: "value_1",
    key_2: "value_2",
    key_3: "value_3",
};

console.log(convert(myObj));


如果你想要它作为一个对象,就像这样:

function convert(obj) {
    return Object.keys(obj).reduce((result, key) => {
        result[key] = {
            name: obj[key],
            type: "foo"
        };
        return result;
    }, {});
}

const myObj = {
    key_1: "value_1",
    key_2: "value_2",
    key_3: "value_3",
};

console.log(convert(myObj));

关于javascript - 将对象转换为对象字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48625723/

相关文章:

javascript - 使用dojo/hash时如何处理浏览器刷新?

javascript - 如何制作按钮的 "pushed"效果?

javascript - 避免 NgRxReducer 中的状态突变

Javascript列表对象无法添加JSON? Node.JS、Firebase

node.js - 如何获取Google Ads API以获取帐户列表

javascript - 在 javascript 中映射和匹配范围

javascript - Highcharts 从柱状图过渡到蜘蛛网状图

javascript - 使用 node.js 处理 PLUpload 上传

python - 遍历嵌套在字典中的列表

loops - 从 List.map() 获取迭代索引