我有对象数组,我不能接收它的一个属性的值。 row.parent_id的Console.log未定义 请说明为什么每个对象都具有parent_id属性
[{ _id: 5c94b9f0e5a1cf63ccb29bd1,
parent_id: 0,
title: 'Home',
icon: 'fa fa-lg fa-fw fa-home',
route: '/home',
badge: [] },
{ _id: 5c94b9f0e5a1cf63ccb29bd2,
parent_id: 0,
title: 'Blog',
icon: 'fa fa-lg fa-fw fa-blogger',
route: '/views/blog',
badge:
{ label: 'hot',
class: 'badge pull-right inbox-badge bg-color-yellow' } }]
docs.forEach (function (row,key) {
console.log('par',row.parent_id)
if(row.parent_id === 0 ){
result.push(row)
}
})
console.log('res',result)
我不明白为什么,但是如果我手动将这个对象添加到变量中,它会起作用,但是如果我从mongo db中获得它,它就不会起作用,但是对象是相同的
答案 0 :(得分:0)
首先,您在代码中存在一些错误,缺少引号和两个对象之间的逗号。如果要检查,是否每个对象都具有parent_id属性,请使用过滤器fn。
const docs = [{ _id: "5c94b9f0e5a1cf63ccb29bd1",
parent_id: 0,
title: 'Home',
icon: 'fa fa-lg fa-fw fa-home',
route: '/home',
badge: [] },
{ _id: "5c94b9f0e5a1cf63ccb29bd2",
parent_id: 0,
title: 'Blog',
icon: 'fa fa-lg fa-fw fa-blogger',
route: '/views/blog',
badge:
{ label: 'hot',
class: 'badge pull-right inbox-badge bg-color-yellow' } }]
console.log(docs.filter(item => item.parent_id !== 'undefined'))
请注意,当与0比较时,!=总是返回false,!=='undefined'检查是否存在值。如果您的情况下0不是正确的值,则只需与0进行比较。
答案 1 :(得分:0)
您是否检查过for循环执行是否在块内?
该对象看起来不像数组。
数组元素必须用,
分隔。
从逻辑上看,您似乎要过滤掉parent_id
不为零的所有元素。可以像这样
reult = docs.filter(element => element.parent_id === ‘0’)