【发布时间】:2020-07-31 08:47:42
【问题描述】:
我有一个对象数组,我必须从中选择一个数组对象;并将其转换为模式。
[
executed:[
{_id: "5f23d394cd 480e300", field: "name", value: "Jolly", operator: "equal"},
{_id: "5f30d39f4cd8d0e301", field: "status", value: "EXPIRED", operator: "equal"},
{_id: "5f230d39001480e302", field: "grp", value: "874-3-11-4-56", operator: "equal"},
{_id: "59f4cd8d001480e303", field: "grp", value: "873-5-12-4-77", operator: "equal"}
],
created_at: "2020-07-30T18:11:05.992Z"
name: "Kind Find"
_id: "1f230d39f4cd8d441480e2dd"
]
我有上面的模式,我正在尝试将其转换为以下模式..
{
"grp": ["874-3-11-4-56", "873-5-12-4-77"],
"name": "Jolly",
"status": "EXPIRED"
}
所以executed 中的数据只是我想挑选并将其转换为上述对象。
现在问题是数据是动态的,field 和 value 每次都会不同。但它只需要使用这两个字段。
另外,grp 字段始终是一个数组....(如果有一个 grp,那么它也应该是一个数组)
我被这个关键的东西困住了,对 JS 不熟悉(是 python 开发者:D),用 React 探索这些领域。 请帮我解决这个问题。
非常感谢!
编辑:只是另一个例子
例子-
[
executed:[
{_id: "5f23d394cd 480e300", field: "name", value: "Jolly", operator: "equal"},
{_id: "5f30d39f4cd8d0e301", field: "status", value: "EXPIRED", operator: "equal"},
{_id: "59f4cd8d001480e303", field: "grp", value: "873-5-12-4-77", operator: "equal"}
],
created_at: "2020-07-30T18:11:05.992Z"
name: "Kind Find"
_id: "1f230d39f4cd8d441480e2dd"
]
输出
{
"grp": ["873-5-12-4-77"],
"name": "Jolly",
"status": "EXPIRED"
}
【问题讨论】:
-
你所说的“字段”是什么意思,每次都会不同?您是否总是尝试将“grp”分组到一个数组中,或者这会改变吗?
-
field: "name"可以出现两次吗?如果是,它应该是输出中的一个数组吗? -
是的,如果字段出现两次,那么它应该得到一个数组,(默认情况下
grp无论是一次还是两次都是一个数组。)
标签: javascript arrays json reactjs