Javascript将多个对象推入一个空对象

时间:2019-09-05 09:58:54

标签: javascript arrays object ecmascript-6

我正在尝试在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] };
    }
}

哪个返回: enter image description here

非常感谢您的帮助!

2 个答案:

答案 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" }
}