chunk
作用: 将一个一维数组拆分成一个二维数组,下标是从1开始
var arr = [1,2,3,4]
var newArr = _.chunk(arr, 3)
console.log("newArr", newArr[0]) // [[1,2,3], [4]]
compact
作用: 过滤掉所有结果为假的值
var arr = [1, 2, NaN, undefined, '', 0, false, null, 'a']
var newArr = _.compact(arr)
console.log("newArr", newArr) // [1, 2, 'a']
uniq
作用: 数组去重
var arr = [1, 2, 2, 1, 3, 'a', 'a'];
var newArr = _.uniq(arr)
console.log("newArr", newArr) // [1, 2, 3, 'a']
reject 和 filter
作用: 根据某个条件对数组进行过滤
之所以把这两个放在一起讨论,是因为这两个都是过滤,只是返回值相反
var arr = [
{id:0, name: '阿布', age: 23},
{id:2, name: 'bbb', age:30},
{id:1, name: 'ccc', age:31},
{id:1, name: 'ddd', age:32},
{id:3, name: 'eee', age:33}
];
var newArr = _.reject(arr, ['id', 1])
console.log("newArr", newArr)
// [{id:0, name: '阿布', age: 23},
// {id:2, name: 'bbb', age:30},
// {id:3, name: 'eee', age:33}]
var newArr1= _.filter(arr, ['id', 1])
console.log("newArr1", newArr)
//[{id:1, name: 'ccc', age:31},
// {id:1, name: 'ddd', age:32}]
shuffle
作用: 数组乱序
var arr = [1, 2, 3, 4];
var newArr = _.shuffle (arr)
console.log("newArr", newArr) // [4, 2, 3, 1]
pick
作用1: 从数组中筛选对象
var arr = [
{id:0, name: '11', age: 2},
{id:0, name: '33', age: 20},
{id:1, name: '22', age: 18}
]
var newArr = _.pick(arr, ['id', 0])
console.log('newArr', newArr, 'type', typeof(newArr)) // {id:0, name: '11', age: 2}
说明: 找到一个符合条件的就里面停止了
作用2 : 从对象筛选属性, 返回一个对象
var obj = {id:0, name: '11', age: 2};
var newArr1 = _.pick(obj, ['name', 'age'])
console.log('newArr1', newArr1, 'type', typeof(newArr1)) // {name: "11", age: 2}
keys
作用: 获取一个对象所有键,组成数组
var obj = {id:0, name: '11', age: 2};
var arr = _.keys(obj);
console.log(arr) // ['id', 'name', 'age']
clone和cloneDeep
拷贝对象,区别是一个用同一个内存空间,另一个新建一个内存空间,但是据说有bug
merge
作用: 合并两个对象
var obj1 = {
a: [{age: 2},{name:'张三'}]
}
var obj2 = {
a: [{height:175},{weight:120}]
}
var newObj = _.merge(obj1, obj2);
console.log(newObj) //结果 {a: [{age: 2, height: 175},{name:'张三‘,height:120}]}
random
作用: 获取某个区间的随机数
var newObj = _.random(10, 20);
console.log(newObj) // 结果是10到20之间的随机整数,包含10和20
var newObj = _.random(10, 20, true);
console.log(newObj) // 结果是10到20之间的随机小数
sample
作用: 获取数组中某个元素
var arr = ['第一个', '第二个']
var str = _.sample(arr);
console.log(str)
find
作用: 从数组中查找某个元素
var arr = [
{
id: 1,
name: '张三'
},
{
id: 2,
name: '李四'
}
]
var str = _.find(arr, ['id', 1]);
console.log(str) // { id: 1, name: '张三'}
降低一个维度
var arr = [1,[2,3,[4,5]]]
var newArr = _.flatten(arr)
console.log('newArr', newArr) // [1,2,3,[4,5]]
彻底降维
var arr = [1,[2,3,[4,5]]]
var newArr = _.flattenDeep(arr)
console.log('newArr', newArr) // [1,2,3,4,5]
综合使用
找到id最大的一项
var arr = [
{
id: 1,
name: '张三'
},
{
id: 3,
name: '张三'
},
{
id: 2,
name: '李四'
},
{
id: 4,
name: '李四'
}
]
var str = _.find(arr, ['id', _.max(_.map(arr, 'id'))]);
console.log(str) // {id: 4, name: '李四'}