我觉得这是一个非常简单的问题,但是作为初学者,我找不到答案。
最终,我想检查数组中是否存在元素(例如 userProfile.friendRequests
)。
我最终使用includes
作为简单的支票即
checkRequest(friendReqUid) {
return userProfile.friendRequests.includes(friendReqUid)
}
但是有时该数组甚至可能不存在,并且我看到的检查条件的唯一方法是预先为整个数组添加一个检查。即
checkRequest(friendReq) {
return userProfile.friendRequest && userProfile.friendRequest.includes(friendReq)
}
如果我是在模板中执行此操作(以显示按钮等),则最终将是一个漫长的尝试。
是否有更快的功能/方式来检查数组是否存在以及是否存在元素,而不是添加另一个检查实际数组是否存在的方法?
谢谢
答案 0 :(得分:0)
我知道,最简单的方法是如果属性为falsy,则默认为空数组:
(userProfile.friendRequests || []).includes(friendReqUid)
但是我通常在访问数组之前检查对象是否存在,因此它更健壮:
(userProfile && userProfile.friendRequests || []).includes(friendReqUid)
编辑:如果您想对push()
做同样的事情,则可以这样做:
userProfile && (userProfile.friendRequests = userProfile.friendRequests || []).push(friendReqUid)
如果伪造,这会将数组初始化为[]
。
但是,您可以考虑将其分成几行,以便于阅读。