lodash高性能的 JavaScript 实用工具库
_.cloneDeep(value)
这个方法类似_.cloneDeep,除了它会递归拷贝 value
。(注:也叫深拷贝)。
例子:
var objects = [{ 'a': 1 }, { 'b': 2 }]; var deep = _.cloneDeep(objects); console.log(deep[0] === objects[0]); // => false
_.clone(value)
创建一个 value
的浅拷贝。
例子:
var objects = [{ 'a': 1 }, { 'b': 2 }]; var shallow = _.clone(objects); console.log(shallow[0] === objects[0]); // => true
1、什么是浅拷贝
创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址 ,所以如果其中一个对象改变了这个地址,就会影响到另一个对象。
2、什么是深拷贝
深拷贝会拷贝所有的属性,并拷贝属性指向的动态分配的内存。当对象和它所引用的对象一起拷贝时即发生深拷贝。深拷贝相比于浅拷贝速度较慢并且花销较大。拷贝前后两个对象互不影响。
_.chunk(value)
chunk
是Lodash库中的一个函数,它用于将一个数组按指定大小分割成多个数组块。该函数接受两个参数:要分割的数组和每个数组块的大小。
chunk
函数的功能是将一个数组分割成多个块,每个块包含了指定数量的元素(除了最后一个块可能会少于指定数量)。这在处理数组数据时非常有用,特别是在需要将大数组分割成更小的块来进行处理或展示时。
以下是一个示例:
const array = [1, 2, 3, 4, 5, 6, 7, 8]; const chunkedArray = _.chunk(array, 3); console.log(chunkedArray); // Output: [[1, 2, 3], [4, 5, 6], [7, 8]]
在上面的示例中,原始数组 [1, 2, 3, 4, 5, 6, 7, 8]
被分割成了三个数组块,每个块包含三个元素,最后一个块只有两个元素。
使用 chunk
函数可以方便地处理大型数据集,以及在UI展示中分页、分列等需求。
_.pick(value)
pick
是 Lodash 库中的一个函数,用于选取一个对象中的指定属性,返回一个新的对象并只包含选中的属性。
pick
函数接受两个参数,第一个参数是要选取属性的对象,第二个参数是一个可选的字符串或字符串数组,表示要选取的属性名。如果传入的第二个参数是一个字符串,则会返回一个新的对象,该对象只包含第一个参数对象中指定的属性名对应的键值对。如果传入的第二个参数是一个字符串数组,则返回的对象包含数组中指定的属性名对应的键值对。
以下是一个例子:
const user = { name: 'John Doe', age: 27, email: 'johndoe@example.com', job: 'Software Engineer' }; const newUser = _.pick(user, ['name', 'email']); console.log(newUser); // Output: { name: 'John Doe', email: 'johndoe@example.com'}
在上述示例中,我们使用 _.pick
函数选取了 user
对象的 name
和 email
属性,并将它们放在一个新对象中返回。最终,输出的结果是 { name: 'John Doe', email: 'johndoe@example.com' }
。
pick
函数非常方便,可以用于从一个对象中选取需要的属性,避免了在代码中重复写许多判断语句。