Fangjian

FE / 生活是一种态度

导航
 » 主页
 » 项目
 » Github
 » 关于我

值得收藏的javascript代码 [js]

19 Jun 2018 » js

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()

Polyfill 与 shim 的区别

// 将数组块划分为指定大小的较小数组 

// ?
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)
}


浏览器

日期

功能

数学

媒体

节点

对象

字符串

实用

相关文章