迭代我的对象对象的问题

Problems with iterating over my Object of Objects

本文关键字:对象 问题 迭代 我的      更新时间:2023-11-22

我有一个对象如下:

{ monday: { close: '10:30 PM', open: '07:30 AM' },
  tuesday: { close: '07:00 PM', open: '11:00 AM' },
  wednesday: { close: '05:30 AM', open: '11:00 AM' },
  thursday: { close: '11:00 PM', open: '06:00 AM' },
  friday: { close: '01:00 AM', open: '01:30 AM' },
  saturday: { close: '07:30 PM', open: '11:00 AM' },
  sunday: { close: 'Closed', open: 'Closed' } }

我正在尝试对此进行迭代并填充一个数组。

//获取的运行时间

 Space.getSpaceById(req.body.spaceId, function (error, space) {
    if (error)
        throw error;
    var hours = space.hoursOfOperation;
Object.keys(hours).forEach(function(key) {
            console.log(hours[key]);
            hoursArray.push({open: hours[key].open, closed: hours[key].close})
        });
}

我的getSpaceById方法。。

 module.exports.getSpaceById = function (id, callback) {
        Space.findOne({_id: id}, callback);
    };

我打电话时总是出错。打开和关闭

我的hours对象在mongoDB 中声明为

hoursOfOperation: {
        monday: {open: String, close: String},
        tuesday: {open: String, close: String},
        wednesday: {open: String, close: String},
        thursday: {open: String, close: String},
        friday: {open: String, close: String},
        saturday: {open: String, close: String},
        sunday: {open: String, close: String}
    }

我将代码粘贴到JSBin中,并进行了一些更改,这很好,不会更改太多代码:

  var hours = { monday: { close: '10:30 PM', open: '07:30 AM' },
  tuesday: { close: '07:00 PM', open: '11:00 AM' },
  wednesday: { close: '05:30 AM', open: '11:00 AM' },
  thursday: { close: '11:00 PM', open: '06:00 AM' },
  friday: { close: '01:00 AM', open: '01:30 AM' },
  saturday: { close: '07:30 PM', open: '11:00 AM' },
  sunday: { close: 'Closed', open: 'Closed' } };
var hoursArray = [];
Object.keys(hours).forEach(function(key) {
            console.log(hours[key]);
            hoursArray.push({open: hours[key].open, closed: hours[key].close});
        });
console.log('----HoursArray here:----');
console.log(hoursArray);

JSBIN

只需在构造中使用for。

for (var key in foo) {
    if (foo.hasOwnProperty(key)) {
        var hours = foo[key];
        console.log(hours.close + " " + hours.open);
    }
}

工作JSFiddle