JavaScript工具函数大全

  
      <李>第一部分:数组   <李>:布尔全等判断
    const所有=(arr fn=布尔)=比;李arr.every (fn);   
  

所有((4、2、3),x=比;x比;1);//
所有([1,2,3]);//真正的
复制代码2。allEqual:检查数组各项相等
const allEqual arr==比;加勒比海盗。每一个(val=比;val===arr [0]);

  

allEqual ([1、2、3、4、5、6]);//错误
allEqual ([1, 1, 1, 1);//真正的
复制代码3。approximatelyEqual:约等于
const approximatelyEqual=(v1、v2,ε=0.001)=比;数学。abs (v1 - v2) & lt;ε;

  

approximatelyEqual(数学。π/2.0,1.5708);//真正的
复制代码4。arrayToCSV:数组转CSV格式(带空格的字符串)

  

const arrayToCSV=(加勒比海盗,分隔符=" ")=祝辞arr
。地图(v=比;v。地图(x=比;<代码> " $ {x} ">   

arrayToCSV ([[a, b], [' c ', ' d ']]);//薄癮",“b" \ n" c",“d"“
arrayToCSV ([[a, b], [' c ', ' d ']], '; ');//薄癮"“b" \ n" c";“d"“
复制代码5。李arrayToHtmlList:数组转列表
此代码段将数组的元素转换为& lt; li>标签,并将其附加到给定的ID列表中。
const arrayToHtmlList=(arr listID)=祝辞
(el=比;(
(el=文档。querySelector (“#”+ listID)),
(el。innerHTML arr +=5赝?项=比;<代码>,lt; li& gt; ${项},lt;/li& gt; ). join ()
)) ();

  

arrayToHtmlList([第一项,第二项”),“myListID”);
复制代码6。平均:平均数
const平均=(…num)=比;全国矿工工会。减少((acc, val)=比;acc + val, 0)/nums.length;
平均(…(1、2、3));//2
平均(1、2、3);//2
复制代码7。averageBy:数组对象属性平均数
此代码段将获取数组对象属性的平均值
const averageBy=(arr fn)=祝辞arr
。地图(typeof fn===δ堋?fn: val=比;瓦尔(fn))。减少((acc, val)=比;acc + val, 0)/
arr.length;

  

averageBy ([{n: 4}, {n: 2}, {n: 8}, {n: 6}], o=比;o.n);//5
averageBy ([{n: 4}, {n: 2}, {n: 8}, {n: 6}], ' n ');//5
复制代码8。分叉:拆分断言后的数组
可以根据每个元素返回的值,使用减少()和()将推元素添加到第二次参数fn中。
const分叉=(加勒比海盗、过滤)=祝辞arr
。减少((acc, val)=比;(acc(过滤器(我)?0:1].push (val)、acc), [[], []]);
分叉([‘嘟嘟’,(boop)”,“foo”, '酒吧'],[没错,真的,假的,真正的]);
//[[‘嘟嘟’,(boop) ' ', '酒吧'],[“foo”]]
复制代码9。castArray:其它类型转数组
const castArray=val=比;(Array.isArray (val) ?瓦尔(val):);

  

castArray (“foo”);//(“foo”)
castArray ([1]);//[1]
castArray (1);//[1]
复制代码10。紧凑:去除数组中的无效/无用值
const紧凑=arr=比;

arr.filter(布尔);   

紧凑([0,1,假,2”,3”“,“e”* 23日南,“年代”,34]);
//[1, 2, 3,‘‘,‘s’, 34]
复制代码11。countOccurrences:检测数值出现次数
const countOccurrences=(arr, val)=比;加勒比海盗。减少((v)=比;(v===瓦尔?+ 1:a), 0),
countOccurrences ([1, 1、2、1, 2, 3], 1);//3
复制代码12。deepFlatten:递归扁平化数组
const deepFlatten arr==比;[]的arr .concat (…。地图(v=比;(Array.isArray (v) ?deepFlatten (v): v)));

  

deepFlatten ([[2], [3], [4], 5]);//(1、2、3、4、5)
复制代码13。区别:寻找差异
此代码段查找两个数组之间的差异。

  

const差=(a, b)=比;{
const s=新组(b);
返回。过滤器(x=比;! s.has (x));


};   

差异([1,2,3],[1、2、4]);//[3]
复制代14码。differenceBy:先执行再寻找差异
在将给定函数应用于两个列表的每个元素之后,此方法返回两个数组之间的差异。
const differenceBy=(a, b, fn)=比;{
const s=新的(b.map (fn));
返回。过滤器(x=比;! s.has (fn (x)));


};   

differenceBy ([2.1, 1.2], [2.3, 3.4], Math.floor);//[1.2]
differenceBy ([{x: 2}, {x: 1}], [{x: 1}], v=比;v.x);//[{x: 2}]
复制代15码。dropWhile:删除不符合条件的值
此代码段从数组顶部开始删除元素,直到传递的函数返回为真的。
const dropWhile=(arr func)=比;{
(加勒比海盗。长度比;0,,! func (arr [0])) arr=arr.slice (1),
返回arr;


};   

dropWhile ((1、2、3、4), n=比;n祝辞=3);//(3、4)
复制代码16。平:指定深度扁平化数组
此代码段第二参数可指定深度。
const平=(加勒比海盗、深度=1)=祝辞arr
。减少((v)=比;一个。concat(深度比;1,,Array.isArray (v) ?平(v,深度- 1):v) []);

  

平([[2],3、4]);//(1、2、3、4)
平([1,(2,[3 (4、5)6)、7],8],2);//(1、2、3 (4、5),6,7,8)
复制代码17。indexOfAll:返回数组中某值的所有索引

JavaScript工具函数大全