Javascript 为什么'arr.find()'返回'undefined`?

Javascript 为什么'arr.find()'返回'undefined`?,javascript,arrays,node.js,Javascript,Arrays,Node.js,在下面的代码his.\u notifications中,是一个对象数组,每个对象都包含如下所示的属性 我要做的是检查未传递给函数func()的每个对象是否被推入数组中 因此,我正在使用.find(),如果对象被传递到函数或数组中已经存在,我希望它返回true,否则返回false 但是下面的日志语句打印未定义的!为什么isExists未定义?建议用什么方法检查数组中的项是否重复 代码: func(noti) const isExists = this._notifications.find((ob

在下面的代码
his.\u notifications
中,是一个对象数组,每个对象都包含如下所示的属性

我要做的是检查未传递给函数
func()
的每个对象是否被推入数组中

因此,我正在使用
.find()
,如果对象被传递到函数或数组中已经存在,我希望它返回
true
,否则返回
false

但是下面的日志语句打印未定义的
!为什么
isExists
未定义?建议用什么方法检查数组中的项是否重复

代码

func(noti)
const isExists = this._notifications.find((obj) =>
  obj.title === noti.safeTitle
  && obj.text === noti.safeText
  && obj.bannerTitle === noti.safeBannerTitle
  && obj.bannerText === noti.safeBannerText
  && obj.icon === noti.icon
  && obj.onClickCallback === noti.onClickCallback
  && obj.eNotificationType === noti.notificationType
  && obj.deleteable === noti.deletable
  && obj.withBanner === noti.withBanner
);
logger.info('[isNotificationExists] For the current notification: ', JSON.stringify(notification), ' isExists: ', isExists);

find()方法返回数组中第一个元素的值 满足提供的测试功能。否则未定义 返回

includes()方法确定数组是否包含特定的 元素,根据需要返回true或false。它使用 sameValueZero算法,用于确定给定元素是否为 找到了

函数有重复项(数组){
返回(新集合(数组)).size!==array.length;
}
find()
在这里不是一个合适的数据结构,因为它的返回类型是找到的元素,而不是标志(无论是否找到它)。您可以使用下划线js
\包含用于此目的的
函数


是否有一种建议的方法来检查数组中的条目是否重复如果您想检查数组中的条目是否重复,该问题可能已经在网站上提出过了。如果对那些问题的回答不符合你的需要,那么考虑一个新的问题;但请准备好解释现有答案不符合您的要求的原因。您可能想看看@ArifKhan与对象比较无关