常年混迹 Github 以及各种社区,总能在其他开发者的代码中找到一些不可思议的代码片段,它们有的优雅高效,有的晦涩难懂,更有甚者让人大跌眼镜,今天就和大家分享一波「令人惊叹的代码片段」。

一、单行写一个评分组件

利用数组提供的 slice 函数对字符串(即字符数组)进行截取,简单到不可思议,让人大呼 “我怎么没想到”

1
'★★★★★☆☆☆☆☆'.slice(5 - rate, 10 - rate);

演示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
let rate = 1;
'★★★★★☆☆☆☆☆'.slice(5 - rate, 10 - rate);
// "★☆☆☆☆"
rate = 2;
'★★★★★☆☆☆☆☆'.slice(5 - rate, 10 - rate);
// "★★☆☆☆"
rate = 3;
'★★★★★☆☆☆☆☆'.slice(5 - rate, 10 - rate);
// "★★★☆☆"
rate = 4;
'★★★★★☆☆☆☆☆'.slice(5 - rate, 10 - rate);
// "★★★★☆"
rate = 5;
'★★★★★☆☆☆☆☆'.slice(5 - rate, 10 - rate);
// "★★★★★"

二、两句代码实现笛卡尔积

1
2
3
4
5
6
7
8
9
10
const source = [
['红', '黄', '蓝'],
['64G', '128G', '256G'],
['30kg', '100kg', '5kg'],
]

const cartesianProduct = (prev, next) => prev.reduce((result, p) => [...result, ...next.map(n => p + n)], [])
const r = source.reduce((result, item, i) => (i > 0 ? cartesianProduct(result, item) : result), source[0])

console.log(r)

查看代码解析>>

运行结果:

评论

富强、民主、文明、和谐,自由、平等、公正、法治,爱国、敬业、诚信、友善