Lodash中数组常用方法
数组方法
1.数组对象去重 differenceBy(array, [values], [iteratee=_.identity])
let newArr =_.differenceBy(
[{ name:'cai',age:12 }, { name:'ccc',age:18}, { name:'ddd',age:18}],
[{ name:'cai',age:14 }, { name:'bbb',age:18}],
'name'
);
console.log(newArr)
从第一个数组中删除与第二个数组中'name'值相同的对象。

2.数组对象去重 differenceWith(array, [values], [comparator])
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
let newArr = _.differenceWith(objects, [{ 'x': 2, 'y': 1 }], _.isEqual);
console.log(newArr)
跟第一个方式类似,但是第三个参数为比较器(function类型)。

3.数组删除前面参数 drop(array, [n=1])
_.drop([1, 2, 3]);
// => [2, 3]
_.drop([1, 2, 3], 2);
// => [3]
_.drop([1, 2, 3], 5);
// => []
_.drop([1, 2, 3], 0);
// => [1, 2, 3]
功能类似于数组中的shift()方法,可以删除头部数据。返回值跟shfit()不同,返回值是剩余数组。
4.多个数组求交集, intersection([arrays])
var arr=[1,2,3,4,5,6]
var arr1=[1,2,3,5,7,9]
var arr2=[1,2,4,5,7,9]
let newArr = _.intersection(arr,arr1,arr2);
console.log(newArr); // => [1, 2, 5]
可以传入多个数组,取出其中相同的值,返回新数组
5.多个数组对象求交集, intersectionBy([arrays])
var arr = [{ name:'cai',age:12 }, { name:'bbb',age:18}, { name:'ddd',age:18}];
var arr1 = [{ name:'cai',age:14 }, { name:'bbb',age:18}];
let newArr = _.intersectionBy(arr,arr1,'name');
console.log(newArr);

可以传入多个数组,取出某一个对象中属性相同的值,返回新数组
6.删除数组中值相同的项,pull(array, [values])
var array = [1, 2, 3, 1, 2, 3];
_.pull(array, 2, 3);
console.log(array);
// => [1, 1]
会改变原数组,返回值就是原数组
7.删除数组对象中指定属性相同的项,pullAllBy(array, values, [iteratee=_.identity])
var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
_.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
console.log(array);
// => [{ 'x': 2 }]
会改变原数组,返回值就是原数组,删除array中x为1和3的对象
8.删除数组中的某一项,pullAt(array, [indexes])
var array = [5, 10, 15, 20];
var evens = _.pullAt(array, 1, 3);
console.log(array); // => [5, 15]
console.log(evens); // => [10, 20]
会改变原数组,返回移除元素组成的新数组
9.移除数组中返回为真值的所有元素,并返回移除元素组成的数组。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]
会改变原数组,返回移除元素组成的新数组
10.自身数组对象去重,这个方法应该挺常用的。.uniqBy(array, [iteratee=.identity])
let arr = _.uniqBy([{ 'x': 2 }, { 'x': 3,'y':2 },{ 'x': 3 }], 'x');
console.log(arr);

如果有相同的x属性,则会删除后面出现的,只会留第一个有x属性的对象
11.两个数组对象去重,这个方法应该也挺常用的。.xorBy([arrays], [iteratee=.identity])
let arr = _.xorBy(
[{ name:'cai',age:12 }, { name:'ccc',age:18}, { name:'ddd',age:18}],
[{ name:'cai',age:14 }, { name:'bbb',age:18}],
'name'
);
console.log(arr)

xorBy是将两个数组合并之后取name不同的值出来,differentBy是比较两个数组,取不同的值,还有intersectionBy,这几个应该是开发中常用的
Lodash中数组常用方法的更多相关文章
- javascript中数组常用方法总结
原文:javascript中数组常用方法总结 在javascript的基础编程中,数组是我们最常遇到的,那么数组的一些常用方法也是我们必须要掌握的,下面我们总结一下数组中常用的方法. toString ...
- js中数组常用方法总结
操作数组 印象中数组有很多方法,系统的整理一下,放在自己家里方便回头查~ Array.map() 此方法是将数组中的每个元素调用一个提供的函数,结果作为一个新的数组返回,并没有改变原来的数组 1 2 ...
- JavaScript中数组常用方法的总结
JavaScript中数组Array常用的方法总结 标签(空格分隔): JavaScript ECMAScript数组给我们提供了许多常用的方法,便于我们对数组进行操作,下面,就来总结一下这些方法. ...
- js中数组常用方法
1.Array.push() 此方法是在数组的后面添加新加元素,此方法改变了数组的长度: var aa=[1,2,3]; var bb=aa.push(4,5); console.log(bb) ...
- ES6中的数组常用方法
数组在JS中虽然没有函数地位那么高,但是也有着举足轻重的地位,下面我就结合这ES5中的一些常用的方法,与ES6中的一些方法做一些说明和实际用途.大家也可以关注我的微信公众号,蜗牛全栈. 一.ES5中数 ...
- JavaScript中数组操作常用方法
JavaScript中数组操作常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2 ...
- javascript中数组Array的方法
一.常用方法(push,pop,unshift,shift,join)push pop栈方法,后进先出var a =[1,2,3];console.log(a.push(40)); //4 返回数组的 ...
- lodash中Collection部分所有方法的总结
总结一下lodash中Collection的所有的方法,方便对比记忆,也便于使用时候查找. 1. 判断是否符合条件:返回bool: a) every: 判断每一值是不是都符合条件: 通过 pr ...
- lodash(一)数组
前言: lodash是一个具有一致接口.模块化.高性能等特性的JavaScript工具库(官网地址:http://lodashjs.com/docs/#_differencearray-values) ...
随机推荐
- Arduino连接LCD1602显示屏
简介 LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符.LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,即可以显示出图形.[百度百科] 引脚说明 ...
- Java 多线程基础(六)线程等待与唤醒
Java 多线程基础(六)线程等待与唤醒 遇到这样一个场景,当某线程里面的逻辑需要等待异步处理结果返回后才能继续执行.或者说想要把一个异步的操作封装成一个同步的过程.这里就用到了线程等待唤醒机制. 一 ...
- vc6.0转vs2012的一些错误与解决方法
1>------ 已启动生成: 项目: NMW210, 配置: Debug Win32 ------ abs_position = fabs((float)posiTemp1 - (float) ...
- python django mkdir和makedirs的用法
总结一下mkdir和makedirs的用法: 1.mkdir( path [,mode] ) 作用:创建一个目录,可以是相对或者绝对路径,mode的默认模式是0777. ...
- spring boot 配置虚拟静态资源文件
我们实现的目的是:通过spring boot 配置静态资源访问的虚拟路径,可实现在服务器,或者在本地通过:http://ip地址:端口/资源路径/文件名 ,可直接访问文件 比如:我们本地电脑的:E: ...
- 搜索引擎ElasticSearch入门
前言 最近项目上需要用到搜索引擎,由于之前自己没有了解过,所以整理了一下搜索引擎的相关概念知识. 正文 想查数据就免不了搜索,搜索就离不开搜索引擎,百度.谷歌都是一个非常庞大复杂的搜索引擎,他们几乎索 ...
- 浅析Java中Ant的使用
Ant是一种基于Java的打包工具,Ant脚本采用XML格式编写,默认的文件名为build.xml. Ant中常用的节点元素 Project Project是项目工程的顶级节点,一个build. ...
- spring boot actuator扩展httptrace的记录
SpringBoot记录HTTP请求日志 1.需求解读 需求: 框架需要记录每一个HTTP请求的信息,包括请求路径.请求参数.响应状态.返回参数.请求耗时等信息. 需求解读: Springboot框架 ...
- Redis持久化机制,优缺点,如何选择合适方式
一.什么是Redis持久化? 持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失. 二.Redis 的持久化机制是什么?各自的优缺点? Redis 提供两种持久化机制 RDB(默认) 和 ...
- Java wait 和 sleep 的区别
一.区别 sleep 来自 Thread 类,和 wait 来自 Object 类 sleep 方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或方法 wait,notify和 ...