引言

这里面收集了许多有趣的代码片段,会不断更新

代码

复制文本到剪切板

这个可以复制文本到剪切板,但是只能在在浏览器使用

const copyText = (text) => navigator.clipboard.writeText(text);

copyText('能否')

根据需要筛选对象

const filterObjectsByCriteria = (obj, ...attribute) => Object.fromEntries(Object.entries(obj).filter(([k]) => attribute.includes(k)));

console.log(filterObjectsByCriteria({ a: 1, b: 2, c: 3, d: 4, e: 5 }, 'a', 'c', 'e'));    //{ a: 1, c: 3, e: 5 }

详解:

// Object.entries()返回一个由对象 obj 的可枚举属性名和属性值组成的数组
console.log(Object.entries({ a: 1, b: 2, c: 3, d: 4, e: 5 }));返回:[ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ], [ 'd', 4 ], [ 'e', 5 ] ]

// filter(([k]) => attribute.includes(k))筛选出每个数组项的第一个元素(即属性名 k)包含在 [ 'a', 'c', 'e' ] 数组中
console.log(Object.entries({ a: 1, b: 2, c: 3, d: 4, e: 5 }).filter(([k]) => [ 'a', 'c', 'e' ].includes(k)));返回:[ [ 'a', 1 ], [ 'c', 3 ], [ 'e', 5 ] ]

// Object.fromEntries()从给定的键值对数组中创建一个对象
console.log(Object.fromEntries([ [ 'a', 1 ], [ 'c', 3 ], [ 'e', 5 ] ]))返回:{ a: 1, c: 3, e: 5 }

数组求和

const sumOfElements = (array) =>  array.reduce((acc, cur) => acc + cur, 0);

console.log(sumOfElements([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]));  //55

详解

返回一个累计处理数组中每个元素的结果

acc是上一次返回的值,cur是当前处理的元素

获取日期

console.log(new Date().toISOString().slice(0,10));   //2024-06-05

计算数组的元素数量

const countArrayElements = (array) => array.reduce((acc, cur) => (acc[cur] ? acc[cur]++ : acc[cur] = 1, acc), {});

console.log(countArrayElements([1, 2, 2, 5, 8, 7, 5, 4, 3, 3, 4, 5, 6, 7, 8, 9, 10]));
最后修改:2024 年 06 月 06 日
如果觉得我的文章对你有用,请随意赞赏