gpt4 book ai didi

javascript - find() 无法识别 javascript 对象数组中的重复值

转载 作者:行者123 更新时间:2023-11-30 15:45:42 27 4
gpt4 key购买 nike

我正在制作一个如下所示的书签功能:

  $scope.bookmarkPost = function(bookmark_post){
if(window.localStorage.bookmarks == null) {
user_bookmarks = [];
} else {
user_bookmarks = JSON.parse(window.localStorage.bookmarks)
}

var existing_post = find(user_bookmarks, function(post){ return post.title == bookmark_post.title; });

if(!existing_post){
user_bookmarks.push({
id: bookmark_post.pagid,
title : bookmark_post.title,
date: bookmark_post.created,
room: bookmark_post.room
});
}

console.log(JSON.stringify(user_bookmarks));

window.localStorage.bookmarks = JSON.stringify(user_bookmarks);
};

这应该有效,并且确实将帖子添加到我的对象数组中(如果它已经存在),然后将其放入本地存储中。如您所见,我正在尝试检查是否已经有一个具有相同标题的条目,如下所示:

var existing_post = find(user_bookmarks, function(post){ return post.title == bookmark_post.title; });

老实说,我什至不能 100% 确定这是做什么的,但我找不到关于我的特定主题的任何其他内容。此检查不起作用,因此存在重复条目。有谁知道如何修复它?

最佳答案

您可能打算使用 Array.find()方法:

var existing_post = user_bookmarks.find(function(post){ 
return post.title === bookmark_post.title; //use === for strict comparison
}); //will return only first element that matches the callback criteria

快速说明:IE 不支持 Array.find()

关于javascript - find() 无法识别 javascript 对象数组中的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40111697/

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