在js中常用的一些for循环会增加圈复杂度,同时会使代码的效率变低,执行起来也会相对缓慢,这时我们可以引用一些库 用里面的一些命令来替代for循环来实现我们的代码。
一些常用的库有 lodash.js 和underscore.js 这两个库用的越来越普遍。我们来说一下underscore.js这个库
我们在用for循环遍历数组查找满足条件的值时一般代码如下:
var array=[1,2,3,4,5,6,7,8,9]; for(var i=0,i
上面的代码会一次一次的执行for循环,代码的效率会变低。我们可以用underscore.js来写
var array=[1,2,3,4,5,6,7,8,9]; _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); 输出结果为 [3, 6, 9]
完成的功能相同代码简便且效率高。
_uniq 删除数组的重复项
_.uniq([1, 2, 1, 3, 1, 4]); => [1, 2, 3, 4] // 返回的数组会删除原数组中的重复项
还有一些其他的功能比如_indexof(array, value), _keys(object), _values(object)等,可根据自己的需要查询。
_indexof(array, value)功能:查询数组是否含有某个元素,如果有返回下标,没有返回-1
var array=[1, 2, 3,4, 5, 6,7]; _.indexof( array, 2); 存在 返回下标 1 _.indexof( array, 8); 不存在 返回-1
_keys(object)的功能是返回对象的键
_.keys({one: 1, two: 2, three: 3}); => ["one", "two", "three"]
_values(object)的功能是返回对象的键值
_.values({one: 1, two: 2, three: 3}); => [1, 2, 3]