Javascript reduce()从多个对象返回字符串数组
我试图使用.reduce()从多个对象返回一个字符串数组。有人能告诉我怎么做吗?我也尝试过使用Object.fromEntries(),但到目前为止运气不好 这是我的代码:Javascript reduce()从多个对象返回字符串数组,javascript,arrays,string,object,reduce,Javascript,Arrays,String,Object,Reduce,我试图使用.reduce()从多个对象返回一个字符串数组。有人能告诉我怎么做吗?我也尝试过使用Object.fromEntries(),但到目前为止运气不好 这是我的代码: let searchList = searchOptions.map((optionList) => Object.entries(optionList).map( ([category, categoryValue]) => {return category === 'illness'
let searchList = searchOptions.map((optionList) => Object.entries(optionList).map(
([category, categoryValue]) => {return category === 'illness' ? categoryValue.map(illnessList => illnessList.list.map(illness => illness)):
category === 'products' ? categoryValue.map(product => product.name) : categoryValue.map(doctor => doctor.name.firstName + " " + doctor.name.lastName)
}))
console.log('List', searchList)
输入:
这就是我目前正在返回的内容
[
[
[
[
"Cold",
"Fever",
"Hair loss"
],
[
"Arthrities",
"Anemia",
"Sleep problems"
],
[
"Cancer",
"Lung disease",
"Covid"
]
],
[
"Aswagandha powder",
"Vitamin C suplement"
],
[
"Aldo Ova",
"Wendy Sanchez",
"Alejandra Lopez"
]
]
]
我需要返回一个数组,其中包含来自对象的所有字符串:
[ "Cold", "Fever", "Hair loss", "Arthrities", "Anemia", "Sleep problems", "Cancer", "Lung disease", "Covid", "Aswagandha powder", "Vitamin C supplement", "Aldo Ova", "Wendy Sanchez","Alejandra Lopez"
]
谢谢大家! 经过大量测试和搜索,我找到了如何在这个双嵌套对象数组中应用reduce()。这是我的最终代码:
let searchList = searchOptions.map(optionList => Object.entries(optionList).map(([category, categoryValue]) => {
return (category === 'illness' ? categoryValue.map(illnessList => illnessList.list.map(listArray => listArray)) :
category === 'products' ? [categoryValue.map(product => product.name)] :
[categoryValue.map(doctor => `${doctor.name.firstName} ${doctor.name.lastName}`)])
.reduce((prev, current) => [...prev, ...current], [])
}).reduce((prev, current) => [...prev, ...current], []))
searchList = searchList.reduce((prev, current) => [...prev, ...current], [])
console.log('List', searchList)
结果:
[
"Cold",
"Fever",
"Hair loss",
"Arthrities",
"Anemia",
"Sleep problems",
"Cancer",
"Lung disease",
"Covid",
"Aswagandha powder",
"Vitamin C suplement",
"Aldo Ova",
"Wendy Sanchez",
"Alejandra Lopez"
]
这将有助于发布输入和预期输出的示例。请将数据显示为文本,而不是文本的图片。您可以使用
console.log(JSON.stringify(searchList,null,2))
获得适合粘贴的数据的美观表示。@pilchard,我更新了问题。希望它更清晰now@HereticMonkey谢谢你的提示!