Javascript Object.keys返回空数组

Javascript Object.keys返回空数组,javascript,Javascript,我有一个这样设计的物体。我想获取日期2020-04-01内对象的键,但当我使用object.keysobj.array[0]时,它会返回一个空数组。我尝试过使用getOwnPropertyNames函数,但它仍然返回空数组 我是这样做的: 对象由另一个函数传递到此函数 function formatAsString(obj){ let array = Object.keys(obj); for(i=0;i<array.length;i++){ let dat

我有一个这样设计的物体。我想获取日期2020-04-01内对象的键,但当我使用object.keysobj.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);
}

当我在控制台中对同一对象使用该函数时,该函数起作用,但当我将其与该函数一起使用时,该函数不起作用。它返回一个空数组object activityObj

获得答案的最佳方法是给出所有详细信息,解释您在最短时间内面临的问题。输入数据的例子,输出数据的格式等,当然,如果你真的需要帮助。 无论如何,我很确定这就是你们想要的,我通过reduce实现了它,因为使用数组比使用循环更好

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}`
  }, '')
}

你能分享一些数据来重现这个问题吗?为了得到适当的帮助,请适当地向我们提供对象你正在调用某个对象的属性数组,但我在你的打印屏幕上的任何地方都没有看到标识符数组。现在还不清楚你想从什么物体上拿到钥匙。这个问题还不清楚。请发布一个示例对象以更好地解释该问题。无需发布数千个包含更多嵌套数据的对象。只是一个简单的结构,可以重现您的问题。请共享一些数据或示例对象来解释betterIt返回未定义的问题。因为日期在对象内。您首先描述了一个问题,如“我想在日期内获取对象的键”。对我来说,这意味着你已经有了一个包含日期全部细节的对象。我已经附上了一张该对象的外观图像。你能看一下那个物体并帮我吗?你能展示一个输出示例吗?你希望最终得到什么?我想得到活动、类型和公司