【问题标题】:Convert object of objects to array将对象的对象转换为数组
【发布时间】:2020-05-30 02:12:17
【问题描述】:

我在一个 Angular 项目上工作,但我对一个对象有一点问题..

我有一个里面有对象的对象:

P3E051V:{
    lot: "P3E051V"
    quantite: 5400
},
P3E052V:{
    lot: "P3E052V"
    quantite: 5400
},
P3E054V:{
    lot: "P3E054V"
    quantite: 10800
}

我想做的是显示这样的表格: image of the table

但是我不能用 *ngFor 循环一个对象。 我尝试使用 Object.entries(myObject) 但它不起作用。

有人有办法解决这个问题吗?

谢谢

【问题讨论】:

  • Object.keys(obj).map(key => obj[key])...
  • Object.keys(obj) 为您提供一组键,['P3E051V','P3E052V','P3E054V']。或者你可以使用Object.entries
  • 您说您已经尝试过Object.entries(myObject),但我偷偷怀疑它完全按照预期工作,而您只是不明白输出会发生什么。你应该在你的代码中设置一个断点来弄清楚Object.entries的输出是什么,因为如果你知道如何使用它,它可能就是你正在寻找的解决方案

标签: javascript html arrays angular typescript


【解决方案1】:

您可以使用Object.keys(),它将提供一个包含对象内所有键的数组。您可以在使用循环时使用这些键从主对象对象中获取对象

var obj={P3E051V:{
    lot: "P3E051V",
    quantite: 5400
},
P3E052V:{
    lot: "P3E052V",
    quantite: 5400
},
P3E054V:{
    lot: "P3E054V",
    quantite: 10800
}
}
Object.keys(obj).forEach(e=>console.log(obj[e]))

【讨论】:

    【解决方案2】:

    const objs = {P3E051V:{
        lot: "P3E051V",
        quantite: 5400
    },
    P3E052V:{
        lot: "P3E052V",
        quantite: 5400
    },
    P3E054V:{
        lot: "P3E054V",
        quantite: 10800
    }}
    
    console.log('the key + the object', Object.entries(objs));
    console.log('just the internal object', Object.entries(objs).map(o => o[1]));

    这是 objectt.entries 的作用

    【讨论】:

      【解决方案3】:

      只要把这个对象放入一个数组中 比如array.push(object)

      【讨论】:

        【解决方案4】:
        const inputObject = {
          P3E051V:{
            lot: "P3E051V",
            quantite: 5400
          },
          P3E052V:{
            lot: "P3E052V",
            quantite: 5400
          },
          P3E054V:{
            lot: "P3E054V",
            quantite: 10800
          }
        }
        
        const outputObjectArray = Object.entries(inputObject).map(entry=>{ return entry[1]});
        console.log(outputObjectArray);
        

        【讨论】:

          【解决方案5】:

          我尝试使用 Object.keys(obj).map(key => obj[key]) 并且它有效 感谢您的帮助

          【讨论】:

            猜你喜欢
            • 2020-06-15
            • 2016-03-11
            • 2019-07-11
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多