javascript - 需要帮助理解箭头函数 a.find( c=>!( a[-c]^=1 ) ) 中的语法
问题描述
试图尝试更多地了解新的 javascript 语法并遇到了这个问题。
a.find(c=>!(a[-c]^=1))
如果有人可以扩展它并为我解释语法,我将非常感激。
为了更清楚。
该数组是一组整数。目标是找到集合中的第一个副本。
IE。如果 a = [1,2,4,5,4,1]
该函数应返回 4
a.find(c=>!(a[-c]^=1))
以上是找到第一个重复项的函数部分。
- 具体来说,我不明白的是,对于集合中的值负数的 -c 如何帮助不总是返回 undefined,因为数组中从来没有负索引。
- a[-c]^=1 是一些我不熟悉的比较,因此非常感谢它的概念示例或文档链接。
- 为什么用 1 谢谢评价。
解决方案
a.find()
a
是一个 Array 并且Array.prototype.find
正在寻找返回的第一个元素,true
或者如果没有找到任何元素undefined
。
让我们看一下箭头函数。
c=>!(a[-c]^=1)
c
表示一个元素a
并a[-c]
引用索引为负数的条目c
,进一步称为b
. !(b^=1)
分配按位异或分配或转换b
的结果。返回的新值和除了返回的每个否定整数。 b^=1
b=b^1
b
0
false
推荐阅读
- css - 为什么 css 变量在 @page 规则中不起作用
- php - Woocommerce 购物车商品折扣在结账时重置
- android - 谁用 Expo 编译应用程序
- razor-pages - 修复使用 sendgrid 发送验证电子邮件时剃刀页面中的错误 OperationCanceledException
- angular - 根据选中的选择框动态添加选择框和文本框的删除和获取数据
- msbuild - 错误 CS0012:“对象”类型是在未引用的程序集中定义的。您必须添加对程序集 'netstandard, Version=2.0.0.0 的引用
- ruby-on-rails - 将数组数组拆分,将 [0] 拆分为一个,将 [1] 拆分为另一个
- ionic-framework - 无法在 Ionic 的 For 循环中正确设置变量
- kubernetes - Kubernetes/Helm:部署多个 pod,每个 pod 都有其适当的参数
- php - 为什么图像路径没有保存在数据库中?