我有一个带有未知键/值对的对象
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/