每天学习几个node库 o(^▽^)┛
————————————————————

in-array github链接: https://github.com/jonschlinkert/in-array

这个库提供了填充数组的方法,原理是遍历数组判断和检查项是否相同

Tips: 默认参数可以通过arr = arr || [] 来设置

代码如下:

jonschlinkertlink
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*!
* in-array <https://github.com/jonschlinkert/in-array>
*
* Copyright (c) 2014 Jon Schlinkert, contributors.
* Licensed under the MIT License
*/

'use strict';

module.exports = function inArray (arr, val) {
arr = arr || [];
var len = arr.length;
var i;

for (i = 0; i < len; i++) {
if (arr[i] === val) {
return true;
}
}
return false;
};

unordered-array-remove github链接: https://github.com/mafintosh/unordered-array-remove

这个库提供了移除数组指定项的方法(会改变数组原有顺序)

原理利用了array.pop()取出数组最后一项,并且替换指定移除的数组项

缺陷: 会改变原有的数组顺序

代码如下:

mafintoshlink
1
2
3
4
5
6
7
8
9
10
11
12
module.exports = remove

function remove (arr, i) {
if (i >= arr.length || i < 0) return
var last = arr.pop()
if (i < arr.length) {
var tmp = arr[i]
arr[i] = last
return tmp
}
return last
}