_.chunk(array, [size=1])
- 将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。
_.chunk(['a', 'b', 'c', 'd'], 2)
_.compact(array)
- 创建一个新数组,包含原数组中所有的非假值元素。例如 false, null, 0, "", undefined, 和 NaN 都是被认为是“假值”。
_.compact([0, 1, false, 2, '', 3])
_.concat(array, [values])
- 创建一个新数组,将 array 与任何数组或值连接在一起。
var array = [1]
var other = _.concat(array, 2, [3], [[4]])
console.log(other)
console.log(array)
_.difference(array, [values])
- 创建一个新数组,包含所有不在其他给定数组中的 array 元素,使用 SameValueZero 进行相等性比较(
SameValueZero
是一种比较算法,用于确定两个值是否相等。它与 JavaScript 的严格相等(===
)相似)。
_.difference([2, 1], [2, 3])
_.flatten(array)
_.flatten([1, [2, [3, [4]], 5]])
_.flattenDeep(array)
_.flattenDeep([1, [2, [3, [4]], 5]])
_.cloneDeep(value)
- 创建一个深拷贝的值。 如果值是一个嵌套对象或数组,那么会递归的拷贝它们。
const obj = { a: 1, b: { c: 2 } }
const deepCopy = _.cloneDeep(obj)
console.log(deepCopy)
console.log(deepCopy === obj)
console.log(deepCopy.b === obj.b)
_.merge(object, [sources])
- 递归合并 sources 对象自身和继承的可枚举属性到目标对象。
var object = {
a: [{ b: 2 }, { d: 4 }],
}
var other = {
a: [{ c: 3 }, { e: 5 }],
}
_.merge(object, other)
_.isEqual(value, other)
var object = { a: 1 }
var other = { a: 1 }
_.isEqual(object, other)
_.get(object, path, [defaultValue])
- 获取 object 对象中 path 路径对应的值。 如果解析 value 是 undefined 会以 defaultValue 取代。
var object = { a: [{ b: { c: 3 } }] }
_.get(object, 'a[0].b.c')
_.get(object, 'a[0].b.d', 'default')
_.omit(object, [paths])
javascriptCopy codeconst object = { 'a': 1, 'b': 2, 'c': 3 };
const result = _.omit(object, ['a', 'c']);
console.log(result);
_.debounce(func, [wait=0], [options=])
- 创建一个防抖动函数,在一定时间内没有再次调用时才会执行。
javascriptCopy code
window.addEventListener('resize', _.debounce(() => {
console.log('Resize event triggered');
}, 300));
_.throttle(func, [wait=0], [options=])
javascriptCopy code
window.addEventListener('scroll', _.throttle(() => {
console.log('Scroll event triggered');
}, 300));