我有以下数组,其中包括对象数组。
const arr = [
[
{
"key1": "keyName",
"key2": "test name1"
},
{
"key1": "keyDescription",
"key2": "test description1"
}
],
[
{
"key1": "keyName",
"key2": "test name2"
},
{
"key1": "keyDescription",
"key2": "test description2"
}
]
]
我要求的结果如下。
result = [
{
"key_name": "test name1",
"key_description": "test description1"
},
{
"key_name": "test name2",
"key_description": "test description2"
}
]
我用js'map'和'find'方法尝试过这个,但它给出了错误的格式。
const res = arr.map(i => i.find(j => j.setting_code === "hotelRate")).map(k => k.setting_value)
我听说这可以用“reduce”来实现。如能提出建议,我将不胜感激。谢谢
2条答案
按热度按时间pieyvz9o1#
下面的解决方案仅使用
map
然后是forEach
在该Map内循环以添加[key1]: key2
对象对到每个对象。编辑:正如andreas在评论中指出的,这可以用
reduce
方法(如果需要):des4xlb02#