js看似很简单,但是我们在写代码的过程中经常会遇到,一个简单的功能总是重复的去实现,导致代码冗余,最终的结果就是维护麻烦,代码质量不高。那么我们怎样去避免这种问题呢? 最近看到一篇文章https://github.com/Chalarangelo/30-seconds-of-code
数组
1 arrayMax
const arrayMax = arr => Math.max(...arr)
console.log(arrayMin([10, 1, 5])) // 10
2 arrayMin
// 返回数组中的最小值
const arrayMin = arr => Math.min(...arr)
console.log(arrayMin([10, 1, 5])) // 1
3 chunk
参考: from()
// 将数组块划分为指定大小的较小数组
// ?
const chunk = (arr, size) => {
Array.from(
{ length: Math.ceil(arr.length / size) },
(v, i) => {
arr.slice(i*size, i*size + size)
}
)
}
4 compact
参考: filter()方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素
const compact = arr => arr.filter(Boolean)
compact([0, 1, false, 2, '', 3, 'a', 'e'*23, NaN, 's', 34])
// [1, 2, 3, "a", "s", 34]
5 countOccurrences
reduce() 方法对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值
// const countOccurrences = (arr, value) => arr.reduce((a, v) => v === value ? a + 1 : a, 0)
const countOccurrences = (arr, value) => {
arr.reduce((a, v) => {
v === value ? a + 1 : a
}, 0)
}