gpt4 book ai didi

javascript - 为什么 `arr.find()` 返回 `undefined` ?

转载 作者:行者123 更新时间:2023-12-03 01:31:44 24 4
gpt4 key购买 nike

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

我想做的是检查每个对象传递给函数func()是否被插入数组?

因此,我正在使用 .find() ,并且如果对象已传递给函数或者它已存在于数组中,我希望它返回 true ,并且 false 否则。

但是下面的日志语句打印undefined!为什么 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);

最佳答案

来自MDN

The find() method returns the value of the first element in the arraythat satisfies the provided testing function. Otherwise undefined isreturned.

The includes() method determines whether an array includes a certainelement, returning true or false as appropriate. It uses thesameValueZero algorithm to determine whether the given element isfound.

To check if an item is duplicated in array

function hasDuplicates(array) {
return (new Set(array)).size !== array.length;
}

关于javascript - 为什么 `arr.find()` 返回 `undefined` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51265572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com