首页 > 解决方案 > 扁平化对象值的最佳/最有效方法是什么?

问题描述

我目前有一个类似于以下内容的对象:

//object
{
    "Question 1": ["Answer 1"],
    "Question 2": ["Answer 2"],
    "Question 3": ["Answer 3"],
    //...
}

我想找到最有效的方法来删除包含每个答案的内部数组,最后是这样的:

//newObject
{
    "Question 1": "Answer 1",
    "Question 2": "Answer 2",
    "Question 3": "Answer 3",
    //...
}

内部数组中几乎总是只有一个项目,但如果有多个项目,那么它们以逗号分隔(从 .toString() 开始)就可以了。

到目前为止,我有以下内容:

let newObject = Object.fromEntries(Object.entries(object).map(([question, [answer]]) => [question, answer]))

这似乎工作正常,但我不太确定从对象数组的迭代创建对象的效率。

有没有更好的方法来实现我想要在这里做的事情?

谢谢!

标签: javascript

解决方案


您可以forEach对键进行操作并设置新值。

只取第一个元素:

Object.keys(object).forEach((key) => { newObject[key] = object[key][0] });

使用 toString 方法:

Object.keys(object).forEach((key) => { newObject[key] = object[key].toString() });

推荐阅读