数组

1、_chunk 

将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。(相当于一个二维数组)

_.chunk(array, [size=1])

例:

_.conpact(array);
import _ from 'lodash'; 例: let arr = [1,2,3,4,'a',5,6,4,5]; let newArr = _.chunk(arr,2); console.log(newArr);//[[1,2],[3,4],['a',5],[6,4],[5]];

 2、_.compact

创建一个新数组,包含愿数组中所有的非假值元素,其中 undefined、null、NaN、false、0、"" 这些都被认为是‘假值’。只针对一维数组

arr = [1,'a',undefined,4,false,'测试',NaN, '',0];
newArr = _.compact(arr);
console.log(newArr);//[1,'a',4,'测试']

3、_.concat

创建一个新数组,将array与任何数组或值连接起来

let arr = [1,2];
let other = _.concat(arr,3,[4],{num:5},[[6]]);
console.log(other);//[1,2,3,4,{name:5},[6]]

4、_.difference

创建一个具有唯一array值的数组,每个值不包含在其他给定的数组中。(注:即创建一个新数组,这个数组中的值,为第一个数字(array 参数)排除了给定数组中的值。)该方法使用SameValueZero做相等比较。结果值的顺序是由第一个数组中的顺序确定。

参数:
1、array (Array): 要检查的数组。
2、[values] (...Array): 排除的值。
_.difference(array, [values])
例: let arr
= [1,2]; let diffArr = [1,8]; let newArr = _difference(arr,diffArr); console.log(newArr);//[2]

5、_.differenceBy

这个方法类似_.difference ,除了它多接受一个 iteratee (注:迭代器), 调用array 和 values 中的每个元素以产生比较的标准。 结果值是从第一数组中选择。iteratee 会调用一个参数:(value)。(注:首先使用迭代器分别迭代array 和 values中的每个元素,返回的值作为比较值),该api如果不传iteratee迭代器,则与_.difference等同

let arr = [3.1,5.3,2,4,6.1];
let valArr = [3.2,6];
let newArr = _.differenceBy(arr, valArr, Math.floor);
console.log(newArr);//[5.3,2,4]

6、_.differenceWith

这个方法类似_.difference ,除了它接受一个 comparator (注:比较器 _.isEqul(val,otherval)),它调用比较arrayvalues中的元素。 结果值是从第一数组中选择。comparator 调用参数有两个:(arrVal, othVal)

<_isEqual:是进行对两个值执行深度比较来确定这个两个值是否相等

注意:_isEqual 方法支持比较arrays, array buffers(ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区), booleans, date objects, error objects, maps, numbers, `Object` objects, regexes, sets, strings, symbols, typed arrays。Object对象会比较它们自身非继承可枚举的属性。不支持function和DOM节点的比较>

参数:
array (Array): 用来检查的数组
[values] (...Array): 用来排除的数组
[comparator] (Function): 比较array和values元素值的方法

_.differenceWith(array, [values], [comparator])

例:

let arr = [{
    name: 'Tom',
    code: 0
},{
    name: 'jerry',
    code: 1,
    list: [{
        name: 'hello'
    }]
}];
let equalArr = [{
    name: 'jerry',
    code: 1,
    list: [{
        name: 'hello'
    }]
}];
let newArr = _.differenceWith(arr, equalArr, _.isEqual);
console.log(newArr);//[{name: 'Tom',code: 0}]

7、_.drop

创建一个切片数组,去除array前面的n个元素(n默认为1)

参数:
array (Array): 要查询的数组。
[n=1] (number): 要去除的元素个数。

_.drop(array,[n = 1]);

let arr = [1,2,3,4,5,6];

console.log(_.drop(arr));//[2,3,4,5,6]--默认n为1

console.log(_.dropRight(arr,5));//[6]

console.log(_.dropRight(arr,9));//[]

 8、_.dropRight

创建一个切片数组,同_.drop的用法相同,不同之处在于,去除array尾部n个元素 (n默认为1)

参数:
array (Array): 要查询的数组。
[n=1] (number): 要去除的元素个数。

_.dropRight(array,[n = 1]);

let arr = [1,2,3,4,5,6];

console.log(_.dropRight(arr));//[2,3,4,5,6]--默认n为1

console.log(_.dropRight(arr,5));//[6]

console.log(_.dropRight(arr,9));//[]

 

posted @ 2021-09-01 17:33  #青橙#  阅读(45)  评论(0编辑  收藏  举报