我想问一些事实上我不知道我的代码有什么问题。所以,我是来自数据库的文档。这是我的文档:
{
"docs":[
{
"orderDate":{
"value":"2018-03-20",
"type":"date"
},
"name":{
"value":"Abid Rakhmansyah",
"type":"text"
},
"phone":{
"value":"082117414233",
"type":"number"
},
"email":{
"value":"bidnth@gmail.com",
"type":"email"
},
"paid":{
"value":true,
"type":"boolean"
}
},
{
"orderDate":{
"type":"date",
"value":"2018-03-13T05:14:00.806Z"
},
"name":{
"value":"Iqbal Maulana",
"type":"text"
},
"phone":{
"value":"082117414233",
"type":"number"
},
"email":{
"value":"bidnth@gmail.com",
"type":"email"
},
"paid":{
"type":"boolean",
"value":false
}
},
{
"orderDate":{
"value":"2018-03-20",
"type":"date"
},
"name":{
"value":"Abdullah",
"type":"text"
},
"phone":{
"value":"092034",
"type":"number"
},
"email":{
"value":"nfdsi@gmail.com",
"type":"email"
},
"paid":{
"value":true,
"type":"boolean"
}
},
{
"orderDate":{
"value":"2018-03-20",
"type":"date"
},
"name":{
"value":"asd",
"type":"text"
},
"phone":{
"value":"234234",
"type":"number"
},
"email":{
"value":"bidnth@gmail.com",
"type":"email"
},
"paid":{
"value":true,
"type":"boolean"
}
},
{
"orderDate":{
"type":"date",
"value":"2018-03-20T06:01:54.821Z"
},
"name":{
"value":"as",
"type":"text"
},
"phone":{
"value":"082117414233",
"type":"number"
},
"email":{
"value":"bidnth@gmail.com",
"type":"email"
},
"paid":{
"type":"boolean",
"value":false
}
}
],
"total":5,
"limit":8,
"page":1,
"pages":1
}
我想在对象中只获得value
属性。所以,我尝试这样编码。
orders.docs.forEach( function (arrayItem)
{
Object.keys(arrayItem.toJSON()).forEach(function(key) {
console.log(key, JSON.stringify(arrayItem[key].value));
});
});
我认为它会起作用。但是,我不知道为什么......我的代码的结果并没有像我期望的那样显示。这是我的代码的结果:
[0] orderDate“2018-03-20”
[0](节点:20944)UnhandledPromiseRejectionWarning:未处理的承诺 rejection(拒绝id:1):TypeError:无法读取属性'value' 未定义的
对于第一个循环,它可以正常工作,但是当它进入第二个循环时。 value
未定义。什么是错的?
答案 0 :(得分:1)
你确定你不仅仅是在思考它吗?
这是 Demo
我确信它可以进一步清理,但是如果不修改你的代码太多,这可以找到关键和值对就好了:
(function ($) {
$('#dropdown-menu-action').on('show.bs.dropdown', function () {
$('body').addClass('overlay-is-navbar-collapse');
});
$('#dropdown-menu-action').on('hide.bs.dropdown', function () {
$('body').removeClass('overlay-is-navbar-collapse');
});
})(window.jQuery);