首页 > 解决方案 > 使用 Javascript 从对象中获取唯一值

问题描述

我有一个看起来像这样的对象数组

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 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

标签: javascriptarraysobject

解决方案


const 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"
 }
];

const distinctItems = [...new Map(object.map(item => [item["name"], item.name])).values()];
console.log(distinctItems.join(' '));

你错过的是.join(' ') 这对你有用。

const distinctItems = [...new Map(object.map(item => [item["name"], item.name])).values()];

推荐阅读