underscore.js 学习(二)

        Array Functions 所有数组函数对参数对象一样适用。
1.first   _.first(array, [n])   别名: head, take
       返回array的第一个元素,设置了参数n,就返回前n个元素。

//_.first
var r = _.first([5, 4, 3, 2, 1]);
console.log(r); //5
var r = _.first([5,4,3,2,1],3);
console.log(r); //[5,4,3]    

2.initial   _.initial(array, [n])
        返回数组中除了最后一个元素外的其他全部元素。尤其用于参数对象。传递 n参数将从结果中排除从最后一个开始的n个元素。

//_.initial
var r = _.initial([5, 4, 3, 2, 1]);
console.log(r); //[5, 4, 3, 2]
var r = _.initial([5, 4, 3, 2, 1], 4);
console.log(r); //[5]

3.last   _.last(array, [n]) 
        返回array(数组)的最后一个元素。传递 n参数将返回数组中从最后一个元素开始的n个元素。 

//_.last
var r = _.last([5, 4, 3, 2, 1]);
console.log(r); //1
var r = _.last([5, 4, 3, 2, 1],3);
console.log(r); //[3,2,1]

4.rest   _.rest(array, [index]) 别名: tail, drop
        返回数组中除了第一个元素外的其他全部元素。传递index 参数将返回除了第index 个元素以外剩余的所有元素。

//_.rest
var r = _.rest([5, 4, 3, 2, 1]);
console.log(r); //[4, 3, 2, 1]
var r = _.rest([5, 4, 3, 2, 1],3);
console.log(r); //[2, 1]

5.compact   _.compact(array)
        返回一个除去所有false值的array副本。在javascript中, false, null, 0, "", undefinedNaN 都是false值。

//_.compact
var r = _.compact([0, 1, false, 2, '', 3]);
console.log(r); //[1, 2, 3]

6.flatten   _.flatten(array, [shallow])
        将一个嵌套多层的数组array(数组) (嵌套可以是任何层数)转换为只有一层的数组。如果你传递shallow参数,数组将只减少一维的嵌套。

//_.flatten
var r = _.flatten([1, [2], [3, [[4]]]]);
console.log(r); //[1, 2, 3, 4];
var r = _.flatten([1, [2], [3, [[4]]]], true);
console.log(r); //[1, 2, 3, [[4]]];
var r = _.flatten([[1,[1.1,[2.2]]], [2], [3, [[4]]]], true);
console.log(r); //[1,[1.1,[2.2]],2,3,[[4]]]

7.without   _.without(array, [*values]) 
        返回一个删除所有values值的array副本。(注:使用===表达式做相等测试。)

//_.without
var r = _.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
console.log(r); //[2, 3, 4]
var r = _.without([{code:'001',name:'TEST001'},{code:'002',name:'TEST002'},{code:'003',name:'TEST003'}],{code:'002',name:'TEST002'});
console.log(r);	//[{code:'001',name:'TEST001'},{code:'002',name:'TEST002'},{code:'003',name:'TEST003'}]

8.union   _.union(*arrays) 
        返回传入的arrays(数组)并集:按顺序返回,数组的元素是唯一的,可以传入一个或多个 arrays(数组)。 

//_.union
var r = _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
console.log(r); //[1, 2, 3, 101, 10]

9.intersection   _.intersection(*arrays)
         返回传入arrays(数组)交集。结果中的每个值是存在于传入的每个arrays(数组)里。

//_.intersection
var r = _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]);
console.log(r); //[1, 2]

10.difference   _.difference(array, *others)
         类似于without,但返回的值来自array参数数组,并且不存在于other 数组。

 

你可能感兴趣的:(JavaScript,underscore)