_.flattenDeep(array):将array递归为一个一维数组
如果不用lodash,个人的思路就是将array使用JSON.stringify转化为字符串,然后使用字符串的replace方法将字符
'['
和
']'
去除掉
使用这个方法会方便很多
_.flattenDeep([1, [2, [3, [4]], 5]]);
_.indexOf(array, value, [fromIndex=0]):返回首次 value 在数组array中被找到的 索引值**
常用来检测数组中是否有某个值,如果没有这个值就返回的是负值,例子
_.indexOf([3,3], 1);
具体参数:
array (Array): 需要查找的数组。
value (*): 需要查找的值。
[fromIndex=0] (number): 开始查询的位置,默认从0开始
_.difference(array, [values]) :根据一个数组去过滤另一个数组
如果array中含有[values]中的值,那么array就去除这些值
例子
_.difference([1,2,3,4],[8,4]);
Array
类型是ECMAScript中最
常用
的引用类型。ECMAScript中的数据与其它大多数语言中的
数组
有着相当大的区别。虽然ECMAScript中的数据与其它语言中的
数组
一样都是数据的有序列表,但不同的是,ECMAScript
数组
中的每一项可以保存任何类型的数据,无论是数值、字符串或者是对象。同时,ECMAScript中的
数组
大小是可以动态调整的,即可以根据数据的添加自动增长以容纳新增的数据。下面总结一下JavaScript中
数组
常用
的操作函数及用法。
•创建
数组
创建
数组
主要有构造函数和
数组
字面量两种
方法
,如下所示:
var arr = new
Array
();
var arr =
//
递归
取值
function getValueByPath(data, pathArr, defultValue = '') {
function GET_VALUE_BY_PATH(data, pathArr, defultValue) {
if (pathArr.length === 0) {
okValue = data
Array
:适用于
数组
类型,比如填充数据、查找元素、
数组
分片等操作
Collection:适用于
数组
和对象类型,部分适用于字符串,比如分组、查找、过滤等操作
Function:适用于函数类型,比如节流、延迟、缓存、设置钩子等操作
Lang:普遍适用于各种类型,
常用
于执行类型判断和类型转换
Math:适用于数值类型,
常用
于执行数学运算
Number:适用于生成随机数,比较数值与数值区间的关系
Object:适用于对象类型,
用
lodash
解决
数组
中对象属性的累加及合并前言案例
我工作的过程中,遇到一个场景。循环调用同一个接口,然后需要对返回的结果做聚合操作,将每个对象中的属性都累加起来。对应的Value是个数字。此时,我想到了用
lodash
去处理。
const source = {
count:{
countOne:{
B:100,
countTwo:33,
vegetabl
使用
lodash
比较两个json
数组
的差异在使用jqgrid的本地数据模式时,需要实现本地数据的增删改功能,保存数据时就需要对原始的json
数组
和最新的json
数组
作比较,此时可以使用
lodash
.js的比较
方法
。注意:引用
lodash
时,需要引用
lodash
.js,不能引用
lodash
.core.js,因为后者不包含本文中所使用的
方法
具体
方法
如下:
假如object包含两个属性,varName和
lodash
是js的一个实用工具库,现在es6盛行,搭配loash工具库是最方便的一件事了。
lodash
内部封装了关于字符串,
数组
,对象一些常见数据类型的处理函数。它所有函数都不会在原有的数据上进行操作,而是复制出一个新的数据而不改变原有数据。
使用传统的js
方法
处理数据,我们难免会用到遍历取数,而使用loash工具库我们可以减少这一环节,所以还是安利一下。
下面整理的是项目上比较
常用
到的
方法
,主...
for(let o of list || []) {
if(o.category_id == iid) return o
const o_ = this.getParentId(o.children, iid)
if(o_) return o_