2019-06-14 描述两个数组中的每一个元素进过提供的函数计算后,返回他们之间不相同的元素。提示对每一个数组中的所有元素进行 fn 计算,使用 Set 将计算结果存在一个集合中使用 Array.prototype.filter()来获取数组之间不包含的值使用展开运算符来避免对原始数组的修改,从而生成新的对象结果代码 constsymmetricDifferenceBy=(a,b,fn)=>{constsA=n
2019-06-13 描述返回两个数组中不相同的元素,重复的值不需要进行过滤。提示对每一个数组创建一个 Set 使用 Array.prototype.filter()来获取数组之间不包含的值使用展开运算符来避免对原始数组的修改,从而生成新的对象结果代码 constsymmetricDifference=(a,b)=>{constsA=newSet(a),sB=newSet(b);return[...a.fil
2019-06-12 描述对数组执行一个稳定的排序,保持他们初始索引位置上的值不变。由于排序不能对原始数组产生变化,因此需要返回一个新数组来保存排序后的结果。提示使用 Array.prototype.map()对传入数组中的每一个元素进行值和索引的匹配使用 Array.prototype.sort()和 compare 对比函数对数组进行排序,如果两个比较元素相等的话就保持他们原始的排序使用 Array.pro
2019-06-11 描述基于提供的迭代方法,根据数组原有的排序规则把对象插入最接近且索引值最大的位置后并返回该索引值。提示宽松的检查数组的排序规则是否为降序使用 Array.prototype.map()让数组中的所有元素进行迭代计算使用 Array.prototype.reverse()和 Array.prototype.findIndex()获取元素在迭代函数后应该插入的最大索引值代码 constsor
2019-06-10 描述把一个元素按照数组中原有的排序规则插入该数组中适当的位置,并返回插入位置的最大索引值。提示宽松的检查数组的排序规则是否为降序使用 Array.prototype.reverse()和 Array.prototype.findIndex()获取元素应该插入的最接近的最大索引值代码 constsortedLastIndex=(arr,n)=>{constisDescending=arr
2019-06-09 描述基于提供的迭代方法,根据数组原有的排序规则把对象插入最接近且索引值最小的正确位置后返回该索引值。提示宽松的检查数组的排序规则是否为降序使用 Array.prototype.findIndex()找出元素应该插入的最接近的索引所有比较需基于迭代函数 fn 代码 constsortedIndexBy=(arr,n,fn)=>{constisDescending=fn(arr[0])>fn
2019-06-08 描述把一个元素按照数组中原有的排序规则插入该数组中适当的位置,并返回插入位置的最小索引值。提示宽松的检查数组的排序规则是否为降序使用 Array.prototype.findIndex()找出元素应该插入的最接近的索引代码 constsortedIndex=(arr,n)=>{constisDescending=arr[0]>arr[arr.length-1];constindex=
2019-06-07 描述返回一个数组,该数组中包含两个数组中相似的元素。提示使用 Array.prototype.filter()过滤出那些值不在另一个数组中的元素使用 Array.prototype.includes()来判断另一个数组中是否包含该值代码 constsimilarity=(arr,values)=>arr.filter(v=>values.includes(v));示例找出两个数组中相同
2019-06-06 描述对数组中的值进行随机排序后并返回新生成的数组。提示使用 Fisher-Yates(洗牌)算法将数组进行随机排列使用扩展运算符...创建新的数组代码 constshuffle=([...arr])=>{letm=arr.length;while(m){consti=Math.floor(Math.random()*m--);[arr[m],arr[i]]=[arr[i],arr[m
2019-06-05 描述和 Array.prototype.splice()有着同样的功能,但是需要返回新数组来替代对原始数组的修改。提示使用 Array.prototype.slice()和 Array.prototype.concat()来获取移除存在的元素并且(或者)添加新元素后的新数组内容。第二个参数为 index,默认从 0 开始第四个元素为 elements,默认不添加新元素代码 constshank=
2019-06-04 描述从键值唯一的数组中获取 n 个随机元素。提示使用 Fisher-Yates(洗牌)算法将数组进行随机排列使用 Array.prototype.slice()获取前 n 个元素第二个参数的默认值为 1 代码 constsampleSize=([...arr],n=1)=>{letm=arr.length;while(m){consti=Math.floor(Math.random()*m--);
2019-06-03 描述从数组中返回一个随机元素。提示使用 Math.random()和数组的长度相乘来生成随机数使用 Math.floor()进行四舍五入,从而使结果为最接近的整数这个方法同样适用于字符串代码 constsample=arr=>arr[Math.floor(Math.random()*arr.length)];示例随机返回数组中的一个元素:sample([3,7,9,11]);返回总目录
2019-06-02 描述从数组中移除给定函数返回 false 的元素。提示使用 Array.prototype.filter()找出数组中返回真值的元素在 Array.prototype.reduce()中使用 Array.prototype.splice()来移除原始数组中的元素调用的 func 可以依此传入三个参数(value,index,array)代码 constremove=(arr,func)=>Arr
2019-06-01 描述返回数组中不满足条件的元素。提示使用 Array.prototype.filter()过滤出不满足条件的元素代码 constreject=(pred,array)=>array.filter((...args)=>!pred(...args));示例返回奇数:reject(x=>x%2===0,[1,2,3,4,5]);//[1,3,5]返回长度小于 5 的单词:reject(wor
2019-05-31 描述根据提供的函数对数组中的值进行一一比较,最终返回其最小值或最大值。提示使用 Array.prototype.reduce()和 comparator 函数来获取数组中适当的元素第二个比较函数 comparator 可以省略,其默认值返回数组中的最小元素当然也可以用 sort 排序后取第一个元素代码 constreduceWhich=(arr,comparator=(a,b)=>a-b)=>a
2019-05-30 描述对数组中的每一个元素(从左到右)使用累计函数,最终返回一个累计的连续数组。提示累计函数需至少传入当前累计数组和当前元素对提供的数组使用 Array.prototype.reduce()来执行累计函数对累计函数计算的结果进行存储最后一个参数为累计的初始值代码 constreduceSuccessive=(arr,fn,acc)=>arr.reduce((res,val,i,arr)
2019-05-29 描述基于特定的条件过滤出数组中的对象,并且过滤出这些对象中没有指定的 keys。提示基于提供的 fn 对数组使用 Array.prototype.filter()进行过滤,当在 fn 的条件中对象返回真值时,我们就返回这个对象在过滤好的数组中,使用 Array.prototype.map()来返回一个新的对象,该对象使用 Array.prototype.reduce()来过滤出 keys 参数中出没
2019-05-28 描述基于给定的迭代函数和对象获取出需要过滤值,最终根据需要过滤出的值来修改原始数组。提示检查提供给函数中的最后一个参数是否为函数,如果不是函数的话返回 undefined 使用 Array.prototype.map()让指定的所有数组中的对象依次传入迭代函数 fn 中,从而获取需要过滤出的值使用 Array.prototype.filter()和 Array.prototype.includ
2019-05-27 描述修改原始数组,使其对特定值进行过滤。最后返回被移除的元素。提示使用 Array.prototype.filter()和 Array.prototype.includes()过滤出数组中没有指定的值通过使用 Array.prototype.length=0 将原始数组的长度重置为 0,从而改变其传入的数组使用 Array.prototype.push()为原始数组重新填入第一步获取的数组使
2019-05-26 描述根据指定索引修改原数组,使其移除指定索引的元素。提示使用 Array.prototype.map(),Array.prototype.includes()和 Array.prototype.push()把指定索引的元素放到一个数组中使用 Array.prototype.filter()和 Array.prototype.includes()获取指定索引以外的元素通过使用 Array.p