📅  最后修改于: 2023-12-03 15:20:50.499000             🧑  作者: Mango
Underscore.js 是一个 JavaScript 库,提供了一组实用的函数,用于操作和处理数组、集合、对象、函数等。本文将为程序员提供 Underscore.js 对象的完整参考,包括常用的函数和用法示例。
Underscore.js 提供了四个核心函数,它们是 each
、map
、reduce
和 filter
,用于在数组和对象上执行各种操作。
each
函数可用于遍历数组或对象,并对每个元素执行指定的回调函数。
示例:
_.each([1, 2, 3], function(num) {
console.log(num);
});
// 输出: 1, 2, 3
_.each({ a: 1, b: 2, c: 3 }, function(value, key) {
console.log(key, value);
});
// 输出: a 1, b 2, c 3
map
函数可用于对数组或对象的每个元素进行转换,并返回转换后的新数组或对象。
示例:
var squares = _.map([1, 2, 3], function(num) {
return num * num;
});
console.log(squares);
// 输出: [1, 4, 9]
var lengths = _.map({ a: 'hello', b: 'world' }, function(str) {
return str.length;
});
console.log(lengths);
// 输出: { a: 5, b: 5 }
reduce
函数可用于通过迭代操作将数组或对象的元素归纳为单个值。
示例:
var sum = _.reduce([1, 2, 3], function(total, num) {
return total + num;
}, 0);
console.log(sum);
// 输出: 6
var product = _.reduce({ a: 2, b: 3, c: 4 }, function(total, value, key) {
return total * value;
}, 1);
console.log(product);
// 输出: 24
filter
函数可用于从数组或对象中筛选出满足条件的元素,并返回一个新的数组或对象。
示例:
var evens = _.filter([1, 2, 3, 4, 5], function(num) {
return num % 2 === 0;
});
console.log(evens);
// 输出: [2, 4]
var adults = _.filter({ john: 16, jane: 20, mike: 25 }, function(age, name) {
return age >= 18;
});
console.log(adults);
// 输出: { jane: 20, mike: 25 }
除了核心函数,Underscore.js 还提供了许多其他常用函数,涵盖了各种常见的操作需求。以下是一些常用函数的说明和示例。
clone
函数可用于创建一个对象或数组的浅拷贝。
示例:
var original = { a: 1, b: 2 };
var copy = _.clone(original);
console.log(copy);
// 输出: { a: 1, b: 2 }
original.a = 3;
console.log(copy);
// 输出: { a: 1, b: 2 }
sortBy
函数可用于根据指定的属性对数组或对象进行排序。
示例:
var sortedNums = _.sortBy([3, 2, 1]);
console.log(sortedNums);
// 输出: [1, 2, 3]
var sortedPeople = _.sortBy([
{ name: 'John', age: 30 },
{ name: 'Jane', age: 25 },
{ name: 'Mike', age: 35 }
], 'age');
console.log(sortedPeople);
// 输出: [{ name: 'Jane', age: 25 }, { name: 'John', age: 30 }, { name: 'Mike', age: 35 }]
throttle
函数可用于限制某个函数在一定时间内的调用频率。
示例:
var logMessage = _.throttle(function(message) {
console.log(message);
}, 1000);
logMessage('Hello');
// 输出: Hello
setTimeout(function() {
logMessage('World');
// 输出: World
}, 500);
setTimeout(function() {
logMessage('Underscore.js');
// 输出: Underscore.js
}, 1500);
extend
函数可用于将多个对象的属性合并到一个对象中。
示例:
var obj1 = { a: 1 };
var obj2 = { b: 2 };
var merged = _.extend(obj1, obj2);
console.log(merged);
// 输出: { a: 1, b: 2 }
console.log(obj1);
// 输出: { a: 1, b: 2 }
console.log(obj2);
// 输出: { b: 2 }
Underscore.js 是一个功能强大的 JavaScript 库,提供了许多实用的函数和工具,可帮助程序员更方便地处理和操作数据。本文介绍了 Underscore.js 对象的核心函数和常用函数,并给出了示例代码供参考。阅读完此文,希望你对 Underscore.js 有了更全面的了解,并能在实际开发中灵活运用。