lodash常用api之Array数组方法篇

  • Post author:
  • Post category:其他



  • _.flattenDeep(array):将array递归为一个一维数组

    如果不用lodash,个人的思路就是将array使用JSON.stringify转化为字符串,然后使用字符串的replace方法将字符

    '['



    ']'

    去除掉

    使用这个方法会方便很多

_.flattenDeep([1, [2, [3, [4]], 5]]);
// => [1, 2, 3, 4, 5]

  • _.indexOf(array, value, [fromIndex=0]):返回首次 value 在数组array中被找到的 索引值**

    常用来检测数组中是否有某个值,如果没有这个值就返回的是负值,例子

_.indexOf([3,3], 1);//-1

具体参数:

array (Array): 需要查找的数组。

value (*): 需要查找的值。

[fromIndex=0] (number): 开始查询的位置,默认从0开始


  • _.difference(array, [values]) :根据一个数组去过滤另一个数组

    如果array中含有[values]中的值,那么array就去除这些值

    例子

_.difference([1,2,3,4],[8,4]);   //[1, 2, 3]

  • _.without(array, [values]):创建一个剔除所有给定值的新数组
_.without([2, 1, 2, 3], 1, 2);
// => [3]

  • _.drop(array, [n=1]):切除数组中第n个值前面的所有值
_.drop([8,5,4,2,3],2) //[4, 2, 3]

  • _.fill(array, value, [start=0], [end=array.length]):使用新的value值去替换数组中的从start位置到end位置的值
_.fill([1,2,3,4],'$',1,2) //[1, "$", 3, 4]


  • .findIndex(array, [predicate=

    .identity], [fromIndex=0]):如果数组的值是键值对,可以用该方法返回第一个通过 predicate 判断为真值的元素的索引值(index

var users = [
  { 'user': 'barney',  'active': false },
  { 'user': 'fred',    'active': false },
  { 'user': 'pebbles', 'active': true }
];

_.findIndex(users, function(o) { return o.user == 'barney'; });
// => 0
_.findIndex(users, ['active', false]);
// => 0

  • _.head(array) : 获取array的第一个值

  • _.pull(array, [values]) : array中删除掉传入的values
var array = [1, 2, 3, 1, 2, 3];

_.pull(array, 2, 3);
console.log(array);
// => [1, 1]

还有个方法_.pullAll(array, values),与上面不同的是,区别是这个方法接收一个要移除值的数组。


  • .remove(array, [predicate=

    .identity]) :根据判断条件移除数组中的值
var array = [1, 2, 3, 4];
var evens = _.remove(array, function(n) {
  return n % 2 == 0;
});

console.log(array);
// => [1, 3]

console.log(evens);
// => [2, 4]

  • _.uniq(array):数组去重

  • _.tail(array) :获取除了第一个以外的所有的值

  • _.union([arrays]):数组的并集
_.union([2], [1, 2]);
// => [2, 1]

  • _.unzip(array):数组分解
var zipped = _.zip(['fred', 'barney'], [30, 40], [true, false]);
// => [['fred', 30, true], ['barney', 40, false]]

_.unzip(zipped);
// => [['fred', 'barney'], [30, 40], [true, false]]



版权声明:本文为connie_0217原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。