【发布时间】:2021-06-02 07:56:36
【问题描述】:
我有一个像这样的对象数组
object=
[
{
id:`01`,
name:`fish`,
type:`marine`,
}
{
id:`02`,
name:`fish`,
type:`fresh`,
}
{
id:`03`,
name:`fish`,
type:`tank`,
}
{
id:`04`,
name:`animal`,
type:`pet`,
}
{
id:`05`,
name:`animal`,
type:`wild`,
}
{
id:`06`,
name:`animal`,
type:`zoo`,
}
{
id:`07`,
name:`food`,
type:`veg`,
}
{
id:`08`,
name:`food`,
type:`non-veg`,
}
]
我想以字符串格式唯一地存储它们,所以当我调用它们时,我可以轻松获取它们
- 我尝试使用 map 函数获取价值
let object=
[
{
id:`01`,
name:`fish`,
type:`marine`,
},
{
id:`02`,
name:`fish`,
type:`fresh`,
},
{
id:`03`,
name:`fish`,
type:`tank`,
},
{
id:`04`,
name:`animal`,
type:`pet`,
},
{
id:`05`,
name:`animal`,
type:`wild`,
},
{
id:`06`,
name:`animal`,
type:`zoo`,
},
{
id:`07`,
name:`food`,
type:`veg`,
},
{
id:`08`,
name:`food`,
type:`non-veg`,
}
]
object.map((value)=>{
console.log(value.name)
})
所以我得到的输出为
fish
fish
fish
animal
animal
animal
food
food
- 但我很需要它们
fish
animal
food
即使我试图将它们存储在一个变量中以获取输出
let object=
[
{
id:`01`,
name:`fish`,
type:`marine`,
},
{
id:`02`,
name:`fish`,
type:`fresh`,
},
{
id:`03`,
name:`fish`,
type:`tank`,
},
{
id:`04`,
name:`animal`,
type:`pet`,
},
{
id:`05`,
name:`animal`,
type:`wild`,
},
{
id:`06`,
name:`animal`,
type:`zoo`,
},
{
id:`07`,
name:`food`,
type:`veg`,
},
{
id:`08`,
name:`food`,
type:`non-veg`,
}
]
let gotValue= [...new Set( object.map((value)=>{
return value.name;
}))];
console.log(gotValue);
所以我得到这个值
[
"fish"
"animal"
"food"
]
但我需要字符串格式的值
expected value=
fish
animal
food
【问题讨论】:
-
可以在map之后使用reduce函数
-
顺便说一句,你为什么要对字符串使用反引号?使用表达式作为模板字符串是一种开销。
-
使用上一个 sn-p 中使用 .map 和集合的代码,然后使用
.join()和\n或其他分隔符来获得字符串输出 -
"expected value=\n" + gotValue.join('\n')应该可以解决问题。 -
检查我编辑的答案。
标签: javascript arrays object