ES6箭头函数中的一个小问题

本小白在学习筛选重复的随机数时遇到了箭头函数,不太理解。
let num=[]
while(num.length<16){
let ran=Math.floor(Math.random()*16+1)
if(num.find(x=>x===ran)===undefined){
num.push(ran);
}
箭头函数这里我不明白,这里的箭头函数x=>x===ran对应着(参数1, 参数2, …, 参数N) => 表达式(单一),表达式 形参x与ran随机数作比较,我不理解的是,没有传实参的x怎么能够进行比较呢?

看了你这个问题,你不是不想得到一个随机数的数组,主要是num.find(x=>x===ran)表示检索数组num,如果有值相等,那么就返回该数字,如果找不到就返回undefined,if(num.find(x=>x===ran)===undefined)表示如果找不到该数字,就num.push(ran),将该数字压入数组。注意:你这个“;”应该改写为英文的“;”就可以了,或者就不写这个分号也可以。

因为find 函数 会把 数组中每一项丢到 x=>x===ran 这个函数里当参数。这样 x就有了赋值。