var Posts = [
{
likes: ['5e5782c4f695d70b6e376c8c'],
_id: '5e5782c4f695d70b6e376c7c',
width: 473,
height: 1000
},
{
likes: ['5e5782c4f695d70b6e376c6d'],
_id: '5e5782e7f695d70b6e376c82',
width: 601,
height: 1000
}
];
const myId = '5e5782c4f695d70b6e376c8c';
const result = Posts.likes.filter(userId => userId.toString() !== myId.toString());
console.log("full", result);
获取错误类型错误:无法读取未定义的属性"筛选器"可能是嵌套筛选器的原因
这里的问题是Posts
是一个数组,因此Posts.likes
返回undefined
因此您会收到此错误。要解决此问题,您只需Posts
数组本身应用.filter()
方法,然后解构数组中每个项目的对象,并从中获取likes
属性,然后将likes[0]
与传递的myId
变量匹配,如下所示:
var Posts = [{
likes: ['5e5782c4f695d70b6e376c8c'],
_id: '5e5782c4f695d70b6e376c7c',
width: 473,
height: 1000
},
{
likes: ['5e5782c4f695d70b6e376c6d'],
_id: '5e5782e7f695d70b6e376c82',
width: 601,
height: 1000
}
];
const myId = '5e5782c4f695d70b6e376c8c';
const result = Posts.filter(({likes}) => likes[0] !== myId.toString());
console.log("full", result);