网站首页 > 知识剖析 正文
1. intersection
此代码片段用于返回两个数组的交集,之前在文章《JavaScript中的Set数据操作:交集、差集、交集、对称差集》中介绍过使用 Set 获取两个集合的交集。
const intersection = (arrayA, arrayB) =>
arrayA.filter((item) => arrayB.includes(item));
const array1 = [1, 2, 3, 4];
const array2 = [3, 4, 5, 6];
console.log(intersection(array1, array2)); // [ 3, 4 ]
2. sum
此代码片段用于计算数组各元素的总和。
const sum = (...array) => [...array].reduce((acc, current) => acc + current, 0);
const testArray = [1, 2, 3, 4, 5];
console.log(sum(1, 2, 3, 4, 5)); // 15
console.log(sum(...testArray)); // 15
3. timeTaken
此代码片段用于计算执行函数所需的时间。
const timeTaken = (callback) => {
console.time("执行时间:");
const result = callback();
console.timeEnd("执行时间:");
return result;
};
timeTaken(() => Math.pow(10, 20)); // 执行时间:: 0.094ms
4. average
此代码片段使用扩展运算符 (...) 和数组中的 reduce 方法来返回两个给定数字或数组的平均值。
const average = (...numbers) =>
numbers.reduce((acc, current) => acc + current, 0) / numbers.length;
const testArray1 = [1, 2, 3, 4, 5];
console.log(average(...testArray1)); // 3
console.log(average(1, 2, 3, 4, 5)); // 3
5. powersetArray
此代码片段返回一个数字数组的幂集,使用 reduce、map 和 concat 方法实现数组的组合方式。
const powersetArray = (array) =>
array.reduce(
(acc, current) => acc.concat(acc.map((item) => [current].concat(item))),
[[]]
);
console.log(powersetArray([3, 4, 5]));
console.log(powersetArray([1, 2]));
/*
[
[], [ 3 ],
[ 4 ], [ 4, 3 ],
[ 5 ], [ 5, 3 ],
[ 5, 4 ], [ 5, 4, 3 ]
]
[ [], [ 1 ], [ 2 ], [ 2, 1 ] ]
*/
6. topElements
此代码片段按照从大到小返回数组的 top 个元素,使用扩展操作符(…)和数组的 sort 和 slice 方法。如果不提供第二个参数,number的默认值为1,默认只返回一个最大元素。
const topElements = (array, count = 1) =>
[...array].sort((a, b) => b - a).slice(0, count);
console.log(topElements([1, 2, 3, 4, 5, 6])); // [ 6 ]
console.log(topElements([1, 2, 30, 40, 30], 3)); // [ 40, 30, 30 ]
7. keyValuePairs
此代码片段使用 Object.keys 方法和 map 方法来映射 Object 的键,创建一个键值对数组。
const keyValuePairs = (object) =>
Object.keys(object).map((key) => [key, object[key]]);
console.log(keyValuePairs({ title: "DevPoint", city: "Shenzhen" })); // [ [ 'title', 'DevPoint' ], [ 'city', 'Shenzhen' ] ]
8. isPowerOf2
此代码片段判断一个数是否为 2 的幂次方,使用按位运算符 & 。
const isPowerOf2 = (number) => !!number && (number & (number - 1)) === 0;
console.log(isPowerOf2(100)); // false
console.log(isPowerOf2(64)); // true
9. bottomVisible
此代码片段检查页面底部是否可见。
const bottomVisible = () =>
document.documentElement.clientHeight + window.scrollY >=
(document.documentElement.scrollHeight ||
document.documentElement.clientHeight);
bottomVisible(); // true
10. createDir
此代码片段使用existsSync() 来检查目录是否存在,如果不存在则使用 mkdirSync() 创建它。主要用于NodeJs后端编程。
const fs = require("fs");
const createDir = (dir) =>
!fs.existsSync(dir) ? fs.mkdirSync(dir) : undefined;
createDir("cache");
猜你喜欢
- 2024-11-17 CSV Parquet Avro:为正确的工作选择合适的工具
- 2024-11-17 JS基础进阶- 同步异步编程和EventLoop底层机制
- 2024-11-17 5个你应该知道的JavaScript技巧,不能错过!
- 2024-11-17 map映射+异步加载 完美过渡 if else
- 2024-11-17 Chrome控制台的一些有用API(chrome控件)
- 2024-11-17 Javascript调试器自编代码及运用(js调试工具和方法如何使用)
- 2024-11-17 NET中的定时器:种类与应用场景(winform定时器)
- 2024-11-17 全栈之路:从一个深拷贝开始循序渐进
- 2024-11-17 localStorage灵魂五问。 5M??10M(灵魂官方网站)
- 2024-11-17 JS中用于跟踪程序执行时间的专用函数,两个同时出现截断时间戳
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)