常年混迹 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)
|
查看代码解析>>
运行结果: