Lodash - 数组方法 _.chunk、_.compact、_.concat、_.difference、_.differenceBy、_.drop

1、安装 Lodash

npm i --save lodash

2、引入

const _ = require("lodash");

3、使用

//_.方法名()
_.chunk(["a", "b", "c", "d"], 2)
_.compact([0, "1", 1, 2, 3, null])

4、示例

4.1 _.chunk

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

        参数(array,size长度)

console.log(_.chunk(["a", "b", "c", "d"], 2)); //['a','b'] ['c','d']
console.log(_.chunk(["a", "b", "c", "d"], 3)); //["a", "b", "c"] ['d']

4.2 _.compact

        创建一个新数组,包含原数组中所有的非假值元素。例如false, null,0, "", undefined, 和 NaN 都是被认为是“假值”。

        参数(array)

console.log(_.compact([0, "1", 1, 2, 3, null])); //['1',1,2,3]

4.3 _.concat

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

        参数(array,连接的值,...)

let arr1 = [1, 2, 3, 4];
let arr2 = ["a", "b", "c", "d"];
let str = "我不是数组";
console.log(_.concat(arr1, arr2)); // [1, 2, 3, 4, 'a', 'b', 'c', 'd']
console.log(_.concat(arr1, str, null)); //[1, 2, 3, 4, '我不是数组',null]

4.4 _.difference

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

        参数(array,排除的值,...)

let arr1 = [1, 2, 3, 4, 5, 6];
let arr2 = [5, 6];
console.log(_.difference(arr1, arr2)); //[1, 2, 3, 4]

4.5 _.differenceBy

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

        参数(array,排除的值,iteratee调用每个元素)

let arr1 = [1.1, 1.2, 1.3, 1.4, 1.5, 1.6];
let arr2 = [1.4];
let interatee1 = Math.round;
console.log(_.differenceBy(arr1, arr2, interatee1)); //[1.5, 1.6] interatee对arr1,arr2中的每个元素进行Math.round后,再比较
      
let arr3 = [{ x: 1 }, { x: 2 }];   
let arr4 = [{ x: 1 }];    
let interatee2 = "x";
console.log(_.differenceBy(arr3, arr4, interatee2)); //[{'x':2}]

4.6 _.drop

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

        参数(array,要去除的元素个数)

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(_.drop(arr)); // [2, 3, 4, 5, 6, 7, 8, 9]
console.log(_.drop(arr, 3)); // [4, 5, 6, 7, 8, 9]
console.log(_.drop(arr, 10)); //[]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值