lodash常用API

来源:互联网 发布:mac不用bootcamp装win7 编辑:程序博客网 时间:2024/06/18 07:06

Array API

  • 数组分块 _.chunk(array, [size=1])
//返回新数组var arr=[1,2,3];var newarr=_.chunk(arr,2);//[[1,2],[3]]
  • 去除假值 _.compact(array)
//返回新数组var arr=[0, 1, false, 2, '', 3];_.compact(arr);//1,2,3
  • 过滤数组 _.difference(array, [values])
//返回新数组var arr=[1,2,3];_.difference(arr,[1]);//2,3
  • 填充元素 _.fill(array, value, [start=0], [end=array.length])
/*使用 value 值来填充(也就是替换) array,从start位置开始, 到end位置结束(但不包含end位置) 【Note: 这是个改变数组的方法】参数array (Array): 需要填充的数组.value (*): 填充 array 元素的值.[start=0] (number): 起始位置(包含)[end=array.length] (number): 结束位置(不含)返回值(Array): 返回 array .例子*/var array = [1, 2, 3];_.fill(array, 'a');console.log(array);// => ['a', 'a', 'a']_.fill(Array(3), 2);// => [2, 2, 2]_.fill([4, 6, 8], '*', 1, 2);// => [4, '*', 8]
  • 查找索引 _.indexOf(array, value, [fromIndex=0])
/*获取value在数组 array所在的索引值 使用 SameValueZero 来保证比较的质量(第一个全等===的元素). 如果 fromIndex 值是负数, 则从array末尾起算. 如果 fromIndex为true时,对已排序的数组array执行二分(二进制)查找参数array (Array): 需要查找的数组value (*): 需要查找的元素[fromIndex=0] (boolean|number): 查询的位置或者true值时对一个已排序的数组进行二分查找.返回值(number): 返回元素在数组中的索引位置, else -1.例子*/_.indexOf([1, 2, 1, 2], 2);// => 1// using `fromIndex`_.indexOf([1, 2, 1, 2], 2, 2);// => 3// performing a binary search_.indexOf([1, 1, 2, 2], 2, true);// => 2
  • 去除数组最后一个元素 _.initial(array)
//返回新数组/*去除数组最后一个元素array.参数array (Array): 需要查询的数组.返回值(Array): 返回截取的数组array.例子*/_.initial([1, 2, 3]);// => [1, 2]
  • 移除数组中与提供的参数值一致的元素 _.pull(array, [values])
//更改原来数组,一定程度上可以代替Array的原生方法filter,比如var arr=[1,2,2,13];function find(arr){    var arg=arguments;        for(i in arg)        {            if(!(arg[i] instanceof Object))            {                               arr=arr.filter(function(res){                               if(res!=arg[i])                {                                       return res;                }    });            }                   }    return arr; }        var res=find(arr,1,2);  //效果是一致的        console.log(res);        console.log(arr);/*移除数组array中所有和 values 相等的元素,使用 SameValueZero 进行全等比较 Note: 不像 _.without方法,此方法改变了数组 array(并不是原来的数组了).参数array (Array): 修改的数组[values] (...*): 移除的元素返回值(Array): 返回数组 array.例子*/var array = [1, 2, 3, 1, 2, 3];_.pull(array, 2, 3);console.log(array);// => [1, 1]
  • 移除满足筛选条件的元素 .remove(array, [predicate=.identity], [thisArg])
//更改原数组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]
  • 数组打包和解压 _.unzip(array)
//用于打包多个数组存在对应关系的数据,比如arr1是姓名 arr2是学号 arr1[0]与arr2[0]存在对应关系同样,unzip可以把通过 zip打包成一组的数据再次解压.        var arr1=['a','b'];        var arr2=['1','2'];        var zip=_.zip(arr1,arr2);        var unzip=_.unzip(zip);    console.log(JSON.stringify(zip));    console.log(JSON.stringify(unzip));[Web浏览器] "[["a","1"],["b","2"]]"    /lodash/index.html (37)[Web浏览器] "[["a","b"],["1","2"]]"
  • 数组打包成JSON _.zipObject(props, [values=[]])
_.zipObject([['fred', 30], ['barney', 40]]);// => { 'fred': 30, 'barney': 40 }_.zipObject(['fred', 'barney'], [30, 40]);// => { 'fred': 30, 'barney': 40 }
原创粉丝点击