首页 > 解决方案 > 需要帮助理解箭头函数 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))

以上是找到第一个重复项的函数部分。

  1. 具体来说,我不明白的是,对于集合中的值负数的 -c 如何帮助不总是返回 undefined,因为数组中从来没有负索引。
  2. a[-c]^=1 是一些我不熟悉的比较,因此非常感谢它的概念示例或文档链接。
  3. 为什么用 1 谢谢评价。

标签: javascript

解决方案


a.find()

a是一个 Array 并且Array.prototype.find正在寻找返回的第一个元素,true或者如果没有找到任何元素undefined

让我们看一下箭头函数。

c=>!(a[-c]^=1)

c表示一个元素aa[-c]引用索引为负数的条目c,进一步称为b. !(b^=1)分配按位异或分配或转换b的结果。返回的新值和除了返回的每个否定整数。 b^=1b=b^1b0false


推荐阅读