我如何迭代数组中的特定对象[重复]

问题描述 投票:0回答:1

我有一个包含对象的数组,我只需要获取对象“tipo”的值(而不是键)。

const productsArray = [
    {
        id: 1,
        title: "Tacos",
        price: 30,
        score: 40,
        description: "Delicioso taco con barbacoa recien salida del horno sobre dos tortilla de maiz",
        tipo: {
             campechano: 25,
             costilla:25,
             cspaldilla:25,
             lomo:25,
             maciza:25,
             panza:25,
             pescuezo:25,
             surtida:25
        }
    },
    {
        id: 2,
        title: "Kilogramos",
        price: 500,
        score: 89,
        description: "Delicioso kilo de barbacoa hecha al horno con leña y sin hueso",
        tipo: {
            campechano: 500,
            costilla:50,
            cspaldilla:50,
            lomo:50,
            maciza:50,
            panza:50,
            pescuezo:50,
            surtida:50
       }
    },
    {
        id: 3,
        title: "Consome",
        price: 50,
        score: 25,
        description: "Delicioso Consome de Borrego con arroz y garbanzo",
        tipo: {
            chicho: 30,
            grande: 50
        }
    }
]

我尝试过这些:

for (let key in productsArray){
    console.log(`${key}${productsArray[key]}`);
}

但我明白了

0[object 0bject]
1[object 0bject]
2[object 0bject]

而不是: 25 25 25 25 25 25 25 25 500 500 500 500 500 500 500 500 30 50 我不知道如何获得这些输出,有一些提示吗?

javascript object nested-loops
1个回答
0
投票

您想使用

flatMap()
Object.values()
:

const productsArray = [
  {
    id: 1,
    title: "Tacos",
    price: 30,
    score: 40,
    description:
      "Delicioso taco con barbacoa recien salida del horno sobre dos tortilla de maiz",
    tipo: {
      campechano: 25,
      costilla: 25,
      cspaldilla: 25,
      lomo: 25,
      maciza: 25,
      panza: 25,
      pescuezo: 25,
      surtida: 25,
    },
  },
  {
    id: 2,
    title: "Kilogramos",
    price: 500,
    score: 89,
    description:
      "Delicioso kilo de barbacoa hecha al horno con leña y sin hueso",
    tipo: {
      campechano: 500,
      costilla: 50,
      cspaldilla: 50,
      lomo: 50,
      maciza: 50,
      panza: 50,
      pescuezo: 50,
      surtida: 50,
    },
  },
  {
    id: 3,
    title: "Consome",
    price: 50,
    score: 25,
    description: "Delicioso Consome de Borrego con arroz y garbanzo",
    tipo: {
      chicho: 30,
      grande: 50,
    },
  },
];

const result = productsArray.flatMap((x) => Object.values(x.tipo));
console.log(result);
/* Stackoverflow: show only console */
.as-console-wrapper {
    max-height: 100% !important;
    top: 0;
}

© www.soinside.com 2019 - 2024. All rights reserved.