我正在尝试在javascript中实现如下所示的数据结构:
settings: {
{ "key": "Language", "value": "en" },
{ "key": "Language", "value": "en" }
}
键的数量是可变的,需要进行迭代。我以为我可以用数组来做,但是[0]的数字妨碍了。
这就是我现在拥有的:
convertSettingsToApiSaveFormat(values) {
const keys = Object.keys(values);
const items = Object.values(values);
const valuesToSend = keys.map((key, i) => {
return { key, value: items[i] };
});
return { settings: [valuesToSend] };
}
}
非常感谢您的帮助!
答案 0 :(得分:2)
首先这是一个无效的数据结构
settings: {
{ "key": "Language", "value": "en" },
{ "key": "Language", "value": "en" }
}
JavaScript对象是无用的键值对,下面可以看到两个对象没有和键。
要么像这样
settings: {
"someKey": { "key": "Language", "value": "en" },
"someKey2": { "key": "Language", "value": "en" }
}
或简单的JS数组
settings: [
{ "key": "Language", "value": "en" },
{ "key": "Language", "value": "en" }
]
答案 1 :(得分:1)
您将valuesToSend
放置在数组中-删除它,您将获得所需的输出 * :
return { settings: valuesToSend };
* 您当前想要的结果无效-但是,这是有效的:
settings: [
{ "key": "Language", "value": "en" },
{ "key": "Language", "value": "en" }
}