【发布时间】:2021-04-19 15:20:08
【问题描述】:
您好,我有一个数组group,基于它我正在为某种语言创建一个类别数组。我想生成相同的数组,但只使用过滤器和映射方法。
var group = [
{
nodes: [
{
frontmatter: {
category: 'someCategory DE',
},
fields: {
locale: 'de',
},
},
{
frontmatter: {
category: 'HTML&CSS DE',
},
fields: {
locale: 'de',
},
},
],
},
{
nodes: [
{
frontmatter: {
category: 'react',
},
fields: {
locale: 'en',
},
},
{
frontmatter: {
category: 'HTML&CSS',
},
fields: {
locale: 'en',
},
},
{
frontmatter: {
category: 'javascript',
},
fields: {
locale: 'en',
},
},
{
frontmatter: {
category: 'someCategory',
},
fields: {
locale: 'en',
},
},
{
frontmatter: {
category: 'HTML&CSS',
},
fields: {
locale: 'en',
},
},
{
frontmatter: {
category: 'react',
},
fields: {
locale: 'en',
},
},
],
},
]
我的工作代码没有使用过滤器和映射。
const locale = 'de'
const arr = []
group.forEach(el => {
el.nodes.forEach(e => {
if (e.fields.locale == locale) {
arr.push(e.frontmatter.category)
}
})
})
例如'en'语言的预期结果
arr = ["react", "HTML&CSS", "javascript", "someCategory", "HTML&CSS", "react"]
谢谢
【问题讨论】:
-
内部数组中是否只有一种语言?请添加想要的结果。
-
谢谢@NinaScholz。我添加了预期的结果。是的,“语言环境”只有一种语言
-
对不起,我的意思是每个节点中只有一种语言,或者可能不止一种?
-
只有一个,节点按语言分组
标签: javascript arrays dictionary object filter