JavaScript 中的 .find() 和 .includes() 有什么区别?

2024-02-17

我正在尝试创建一个名为 addTrack 的方法,具有以下功能:

  • 接受轨道参数
  • 使用轨道的 id 属性来检查是否 当前歌曲处于 playlistTracks 状态
  • 如果 id 是新的,则将歌曲添加到播放列表的末尾。

  • 设置播放列表的新状态。

如果我使用代码 #1 而不是代码 #2,会有什么区别?

PlaylistTracks 在构造函数中定义如下:

playlistTracks: [{ name: 'name1', artist: 'artist1', album: 'album1', id: 1 },
        { name: 'name2', artist: 'artist2', album: 'album2', id: 2 },
      ]

Code #1

addTrack(track){
if (this.state.playlistTracks.includes(this.props.track.id)) {return;}
else {this.state.playlistTracks.push(track);
  this.setState({playlistTracks:this.state.playlistTracks});
}

}

Code #2

addTrack(track) {
if (this.state.playlistTracks.find(savedTrack => savedTrack.id===track.id) {return;}
else {return this.state.playlistTracks.push(track);}
this.setState(playlistTracks:this.state.playlistTracks)}

array.includes如果该值存在或不存在,则仅返回 true 或 false

array.find将为您找到数组中的特定项目

e.g.

[1,2,3].includes(1) // returns true
[1,2,3].includes(4) // returns false

[1,2,3].find(i => i === 1) // returns 1
[1,2,3].find(i => i === 5) // returns undefined

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 中的 .find() 和 .includes() 有什么区别? 的相关文章

  • 从数据 URI 解码 QR 码

    我尝试从数据 uri 中解码二维码 var dataUri data image gif base64 R0lGODdh9gD2AIAAAAAAAP ywAAAAA9gD2AAAC decodeQrCode dataUri cb 我已经尝试
  • 每 3 秒重复一次动画

    我正在使用 WOW js 和 animate css 现在我正在将 CSS 运行到 Infinite 我想知道如何让我的课程运行 3 秒停止并再次开始到无限 My html img src images fork png class for
  • 尝试将布尔 C# 变量传递给 javascript 变量并将其设置为 true

    在我的 aspx 页面中 我将布尔变量 C 传递给需要布尔类型的 javascript 函数 但遇到了问题 但是 C 变量返回 True 而 javascript 不喜欢大写 myjavascript 如果我将 c 变量转换为字符串 那么我
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • 除了更改标题之外,如何在 Firefox 中强制另存为对话框?

    有没有办法在 ff 中强制打开 www example com example pdf 的另存为对话框 我无法更改标题 如果您可以将文件以 Base64 格式输出到客户端 则可以使用 data uri 进行下载 location href
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • React - 无法读取未定义的属性[重复]

    这个问题在这里已经有答案了 通常 当我单击子组件中的菜单项时 它会调用 this handlesort 这是一个本地函数 处理排序从我的父组件中获取 onReorder 属性 onReorder 调用名为 reOrder 的本地函数 它设置
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • Babel 7 Jest Core JS“TypeError:wks不是函数”

    将我的项目升级到 Babel 7 后 通过 Jest 运行测试会抛出以下错误 测试在 Babel 6 中运行没有任何问题 但在 Babel 7 中失败并出现以下错误 TypeError wks is not a function at Ob
  • 如何使用tampermonkey模拟react应用程序中的点击?

    我正在尝试使用 Tampermonkey 脚本模拟对 React 元素的点击 不幸的是 由于 React 有自己的影子 DOM 所以天真的方法使用document querySelector 不工作 我遇到了一些需要修改 React 组件本
  • 为什么在 Internet Explorer 中访问 localStorage 对象会引发错误?

    我正在解决一个客户端问题 Modernizr 意外地没有检测到对localStorageInternet Explorer 9 中的对象 我的页面正确使用 HTML 5 文档类型 并且开发人员工具报告该页面具有 IE9 的浏览器模式和 IE
  • 如何在类似控制台的环境中运行 JavaScript?

    我正在尝试遵循这里的示例 http eloquentjavascript net chapter2 html http eloquentjavascript net chapter2 html and print blah 在浏览器中运行时
  • 模块构建失败(来自 ./node_modules/babel-loader/lib/index.js)Vue Js

    我从 GitHub 下载了一个我和我的朋友正在开发的项目 但是当我尝试运行时 npm run serve 我收到这个错误 src main js 中的错误 Module build failed from node modules babe
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28
  • 问题:为什么React Native Video不能全屏播放视频?

    我正在react native 0 57 7 中为android和ios创建一个应用程序并使用反应本机视频 https github com react native community react native video播放上传到的视频
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中
  • 导致回发到与弹出窗口不同的页面

    我有一个主页和一个详细信息页面 详细信息页面是从主页调用的 JavaScript 弹出窗口 当单击详细信息页面上的 保存 按钮时 我希望主页 刷新 是否有一种方法可以调用主页的回发 同时还可以从详细信息页面维护保存回发 Edit 使用win
  • 如何在 Swiper 实例之外使用 useSwiper?

    我在用着用于 React 的滑动器 https swiperjs com react显示一些幻灯片 我一直坚持使用外部按钮在幻灯片 上一张和下一张 之间导航 刷卡器有一个useSwiper hook https swiperjs com r
  • 如何从图像输入中获取 xy 坐标?

    我有一个输入设置为图像类型

随机推荐

  • Javascript的Bind实现?

    Since bind不是跨浏览器 old ones 函数 有一个填充函数 摘自约翰 雷西格的书 1 Function prototype bind function 2 3 var fn this 4 args Array prototyp
  • 使用 powershell 加载 ntuser.dat

    我需要检查网络中 Windows 客户端上所有用户的一些设置 所有用户都有漫游配置文件 我编写了一个 Powershell 脚本 该脚本加载用户的 NTuser dat 的脱机副本并读出特定的密钥 然后该文件被卸载 下一个文件被加载到注册表
  • javascript RegEX 在模式中带有圆括号

    下面的脚本返回 null 如果我删除 str 和 patt1 中文本 spot Northeast 300 comment 的圆括号 它会正确返回 在我的应用程序中 str中的值是从cookie中获取的 patt1中的值是基于打开的窗口的动
  • 更改类内的类变量引用

    我希望能够更改 Test 类中变量的引用 class Test def change self Other Class self class Other Class class self Other class Other def set
  • 如何应用程序使用来自不同文件的所有路由

    我正在尝试分离我的路线 之前我将它们包含到我的 app js 中 后端 app js const express require express const router require routes const status requir
  • jQuery:如何计算所有匹配元素的最大属性值?

    考虑以下 HTML div class a div div class a div div class a div div class a div 你会如何找到最大值x一切的价值 a元素 假设所有x值为正整数 只需循环它们即可 var ma
  • 如何在 EF Core 2.x 中重新加载集合?

    我知道有一个Load method dbContext Entry blog Collection b gt b Posts Load 但我正在尝试处理并发冲突 我已经添加了一个post into blog Posts 如果打电话Load
  • 如何在不使用临时文件的情况下从Java中的嵌套zip文件中读取数据?

    我正在尝试从嵌套的 zip 存档中提取文件并在内存中处理它们 这个问题是什么not about 如何在 Java 中读取 zip 文件 不 问题是如何读取 zip 文件中的 zip 文件 等等 如嵌套的 zip 文件 将临时结果写入磁盘 不
  • 从C# webservice返回多维数组数据到vba

    我有一个返回 2D 数组数据的 C Web 服务 由于我们不能让 Web 服务返回多维数据 所以我让它返回一个锯齿状数组 OperationContract object WSGetData 我有一个 COM Visible C 类库 这是
  • 当我尝试运行 Flutter 程序时,它会卡在“正在运行 Gradle 任务 'assembleDebug”

    每当我尝试在模拟器或真实设备上运行时 它都会卡在 Running Gradle task assembleDebug 整个计算机就会死机并卡住 唯一的出路就是硬重启它 我使用的是华硕笔记本电脑 Windows 10 配备 16GB 内存 f
  • 跳过 R 中 lme 循环中的错误警告

    我正在尝试自动化我的 R 脚本来执行一个包含大量分析的循环 目前我已经搁浅了让它在失败的 CI 测试期间向我发出警告并继续处理下一个响应变量 我分别尝试过 tryCatch 和 try 有人可以告诉我我做错了什么以及如何修改吗 这可能是一些
  • 不支持 Path.isConvex。 Android Studio - 切换按钮

    我已经在 stackoverflow 上读到过这个问题 但不幸的是还没有找到正确的答案 我使用 ToggleButton 它在渲染窗口中显示以下错误 The graphics preview in the layout editor may
  • 通道是否通过引用隐式传递

    gotour 有这个频道示例 https tour golang org concurrency 2 https tour golang org concurrency 2 package main import fmt func sum
  • simpleGrid 是否需要额外下载?

    我想尝试一下简单网格 http knockoutjs com examples grid html在 HotTowel 项目中 当谈到 this gridViewModel new ko simpleGrid viewModel data
  • 为什么 C# 不允许泛型属性?

    我想知道为什么我不能像拥有泛型方法一样在非泛型类中拥有泛型属性 IE public interface TestClass IEnumerable
  • Pycharm 在调试模式下在未知断点处停止

    我在基于 django 的项目中使用 pycharm 进行开发 在调试模式下 Pycharm继续在我没有放置任何断点的地方停止执行代码 这些断点位于我的requirement txt 文件中并且在我的项目中需要的包的核心代码中 而不是在我的
  • MVC5 Microsoft.CSharp.RuntimeBinder.RuntimeBinderException

    我一直致力于将 MVC4 项目转换为 MVC5 第一天 我遇到了 Microsoft CSharp RuntimeBinder RuntimeBinderException 但能够通过重新开始转换来解决它 我不确定修复了什么 这很糟糕 因为
  • Caffe 快照:.solverstate 与 .caffemodel

    训练网络时 每 N 次迭代拍摄的快照有两种形式 一个是 solverstate 文件 我想它就像它听起来的那样 存储损失函数和梯度的状态等 另一个是 caffemodel 文件 我知道它存储训练后的参数 如果您想要预训练的模型 caffem
  • 期望空值时抛出异常?

    如果我期望一个 null 值并获得一个定义的值 在属性的 getter 内 并想要抛出异常 那么在 csharp 中执行此操作的正确方法是什么 在这种情况下是否已经定义了一些有意义的内容 我的猜测是 throw new ArgumentEx
  • JavaScript 中的 .find() 和 .includes() 有什么区别?

    我正在尝试创建一个名为 addTrack 的方法 具有以下功能 接受轨道参数 使用轨道的 id 属性来检查是否 当前歌曲处于 playlistTracks 状态 如果 id 是新的 则将歌曲添加到播放列表的末尾 设置播放列表的新状态 如果我