为了账号安全,请及时绑定邮箱和手机立即绑定

Object.keys 返回空数组

Object.keys 返回空数组

侃侃尔雅 2022-06-16 15:55:12
我有一个这样设计的对象。我想在日期(2020-04-01)内获取对象的键,但是当我使用Object.keys(obj.array[0])它时,它会返回一个空数组。我尝试使用该getOwnPropertyNames()函数,但它仍然返回一个空数组。我这样做是这样的:该对象由另一个函数传递给该函数。function formatAsString(obj){    let array = Object.keys(obj);    for(i=0;i<array.length;i++){        let data = Object.keys(obj[array[i]]);        console.log(data);        for(x=0;x<Object.keys(data).length;x++){            let date = array[x];            let activity = data["activity"];            let type = data["type"];            let company = data["company"];            let string = `${type}( Activity : ${activity} | Comapny : ${comapny} )`;            console.log(string);        }    }}我设法制作了另一个功能function formatAsString(obj){    let values = Object.values(obj);    let dates = Object.keys(obj);    let array = Object.keys(values);    let activityObj = {};    for(i=0;i<array.length;i++){        let keys = Object.keys(values[array[i]]);        let data = values[array[i]];        for(x=0;x<keys.length;x++){            let date = dates[i];            let type = data[keys[x]].type;            let activity = data[keys[x]].activity;            let company = data[keys[x]].company;            let string = `${type} -> ${activity}, ${company} <br>`;            activityObj[date + x] = string;        }    }    console.log(activityObj);}当我在控制台中将它与相同的对象一起使用时,此功能有效,但当我将其与该功能一起使用时无效。它返回我一个空数组对象activityObj
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

获得答案的最佳方法是提供所有详细信息,解释您在开始时遇到的问题。输入数据示例,输出数据格式等。当然,如果你真的需要帮助。无论如何,我很确定这就是您要寻找的东西(我通过 reduce 实现了它,因为它比 for 循环更好地处理数组。


function formatAsString (obj) {

  return Object.keys(obj).reduce((str, date) => {

    const activities = Object.keys(obj[date]).reduce((strDate, key) => {

      const act = obj[date][key]

      return `${strDate} ${act.type}( Activity : ${act.activity} | Company : ${act.company} )\n`

    }, '')

      return `${str}${date}:\n${activities}`

  }, '')

}


查看完整回答
反对 回复 2022-06-16
  • 1 回答
  • 0 关注
  • 342 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号