【发布时间】:2021-10-08 22:29:52
【问题描述】:
我有一个这样的对象数组:
const input = [
{
"name" : "car",
"sign" : "+",
"options" : "benz"
},
{
"name" : "bike",
"sign" : "+",
"options" : "pulsar"
},
{
"name" : "bike",
"sign" : "+",
"options" : "enfield"
},
{
"name" : "car",
"sign" : "+",
"options" : ["toyota","hyundai","benz"]
},
{
"name" : "",
"sign" : "",
"options" : ""
},
{
"name" : "car",
"sign" : "+",
"options" : ["audi", "ford"]
}
]
输入结构是这样的:每个对象都有3个键值对。
-
都可以为空
-
它可以有有效值:
一个。选项可以是字符串
b.也可以是数组
我不希望在输出中添加值为“”(空字符串)的对象,输出应该是这样的:
[
{"car" : [ "benz", "toyota","hyundai", "audi", "ford"]},
{"bike" : ["pulsar","enfield" ]}
]
当对象值可以是数组或字符串时,其他各种答案都没有显示如何处理,所以我正在写一个新问题。
我不确定是否必须使用 reduce 或 map。 非常感谢任何帮助,在此先感谢。
【问题讨论】:
-
这能回答你的问题吗? Group array items using object 其中大多数使用
push()来添加到累加器,但请查看concat()以适合您的情况。 (它接受字符串或数组作为参数) -
不,在那个答案中,它们只有一个颜色字符串。但就我而言,正如我所提到的,“选项”键可以有一个字符串或字符串数组作为值。
-
你看我的评论了吗?
concat()接受字符串或数组。 -
我试过了。当它遇到一个带有“”作为任何键值的对象时,它就会失败。
标签: javascript arrays typescript object javascript-objects