📜  Underscore.js 对象完整参考(1)

📅  最后修改于: 2023-12-03 15:20:50.499000             🧑  作者: Mango

Underscore.js 对象完整参考

Underscore.js 是一个 JavaScript 库,提供了一组实用的函数,用于操作和处理数组、集合、对象、函数等。本文将为程序员提供 Underscore.js 对象的完整参考,包括常用的函数和用法示例。

四个核心函数

Underscore.js 提供了四个核心函数,它们是 eachmapreducefilter,用于在数组和对象上执行各种操作。

each

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

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

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

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

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

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

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

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 有了更全面的了解,并能在实际开发中灵活运用。