获取错误嵌套的 javascript 过滤器属性"过滤器"未定义


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);

最新更新