简介
Underscore.js 是一个 JavaScript 实用工具库,提供了一组常用的函数,简化了开发者日常的代码编写。本文是对 Underscore.js 1.3.3 版本的中文注释翻译说明。
安装和使用
可以通过 npm 或 yarn 安装 underscore:
npm install underscore
或者
yarn add underscore
在 HTML 文件中,可以直接引入 Underscore.js:
<script src="https://cdn.jsdelivr.net/npm/underscore"></script>
引入后即可使用 Underscore.js 提供的函数。
函数列表
以下是 Underscore.js 1.3.3 版本提供的函数列表:
- each
- map
- reduce
- reduceRight
- find
- filter
- reject
- all
- any
- contains
- invoke
- pluck
- max
- min
- sortBy
- groupBy
- sortedIndex
- shuffle
- toArray
- size
- first
- rest
- last
- compact
- flatten
- without
- unique
- union
- intersection
- difference
- zip
- indexOf
- lastIndexOf
- range
- bind
- bindAll
- memoize
- delay
- defer
- throttle
- debounce
- once
- after
- before
- wrap
- negate
- compose
each
each 函数可以遍历数组或对象的所有元素,对每个元素执行指定的函数。这个函数没有返回值。
_.each([1, 2, 3], function(num) { console.log(num); }); // Output: // 1 // 2 // 3
map
map 函数可以对数组或对象的每个元素执行指定的函数,返回一个新的数组。
var numbers = [1, 2, 3]; var squares = _.map(numbers, function(num) { return num * num; }); console.log(squares); // Output: [1, 4, 9]
reduce
reduce 函数可以对数组或对象的所有元素依次执行某个函数,并将计算结果累积起来。最终返回累积的结果。
var sum = _.reduce([1, 2, 3], function(memo, num) { return memo + num; }, 0); console.log(sum); // Output: 6
reduceRight
reduceRight 函数与 reduce 函数类似,只不过它是从右到左遍历数组并执行函数。
var list = [[0, 1], [2, 3], [4, 5]]; var flatList = _.reduceRight(list, function(a, b) { return a.concat(b); }, []); console.log(flatList); // Output: [4, 5, 2, 3, 0, 1]
find
find 函数可以在数组或对象中查找满足条件的第一个元素,并返回该元素。如果没有找到匹配的元素,则返回 undefined。
var even = _.find([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); console.log(even); // Output: 2
filter
filter 函数可以在数组或对象中查找满足条件的所有元素,并返回一个新的数组。
var evenNumbers = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); console.log(evenNumbers); // Output: [2, 4, 6]
reject
reject 函数和 filter 函数相反,它返回一个不满足条件的元素组成的新数组。
var oddNumbers = _.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); console.log(oddNumbers); // Output: [1, 3, 5]
all
all 函数
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/3426