array (Array): 需要查找的数组。 value (*): 需要查找的值。 [fromIndex=0] (number):开始查询的位置。
_.indexOf([1, 2, 1, 2], 2); // => 1 // Search from the `fromIndex`. _.indexOf([1, 2, 1, 2], 2, 2); // => 3 _.initial(array):去除数组array中的最后一个元素 _.initial([1, 2, 3]); // => [1, 2] _.flatten(array):减少一级array嵌套深度,【将三维数组讲到二维数组】_.flattenDepth(array,[depth=1]):根据 depth(最多减少的嵌套层级数。) 递归减少 array 的嵌套层级_.flattenDeep(array):将数组递归至一维数组 _.flattenDeep([1, [2, [3, [4]], 5]]); // => [1, 2, 3, 4, 5] _.fromPairs(pairs):这个方法返回一个由键值对pairs构成的对象。 _.fromPairs([['fred', 30], ['barney', 40]]); // => { 'fred': 30, 'barney': 40 } _.intersection([arrays]):创建唯一值的数组,这个数组包含所有给定数组都包含的元素(给定数组的交集)_.intersectionWith([arrays], [comparator]):区别是它接受一个 comparator 调用比较arrays中的元素。结果值是从第一数组中选择 var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; _.intersectionWith(objects, others, _.isEqual); // => [{ 'x': 1, 'y': 2 }] _.join(array, [separator=’,’]):将 array 中的所有元素转换为由 separator 分隔的字符串。 _.join(['a', 'b', 'c'], '~'); // => 'a~b~c' _.nth(array, [n=0]):获取array数组的第n个元素。如果n为负数,则返回从数组结尾开始的第n个元素。 var array = ['a', 'b', 'c', 'd']; _.nth(array, 1); // => 'b' _.nth(array, -2); // => 'c'; _.pull(array, [values]):移除数组array中所有和给定值相等的元素,返回的是被移除的数组。 var array = [1, 2, 3, 1, 2, 3]; _.pull(array, 2, 3); console.log(array); // => [1, 1] _.pullAt(array, [indexes]):根据索引 indexes,移除array中对应的元素,并返回被移除元素的数组。 var array = [5, 10, 15, 20]; var evens = _.pullAt(array, 1, 3); console.log(array); // => [5, 15] _ .remove(array, [predicate=_.identity]):移除数组中predicate(断言)返回为真值的所有元素,并返回移除元素组成的数组。predicate(断言) 会传入3个参数: (value, index, array)。 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] _.reverse(array):反转array,使得第一个元素变为最后一个元素,第二个元素变为倒数第二个元素,依次类推。 var array = [1, 2, 3]; _.reverse(array); // => [3, 2, 1] console.log(array); // => [3, 2, 1] _.slice(array, [start=0], [end=array.length]):裁剪数组array,从 start 位置开始到end结束,但不包括 end 本身的位置。_.sortedIndex(array, value):使用二进制的方式检索来决定 value值 应该插入到数组中 尽可能小的索引位置,以保证array的排序。_.sortedIndexBy(array, value, [iteratee=function]):除了它接受一个 iteratee (迭代函数),调用每一个数组(array)元素,返回结果和value 值比较来计算排序。_.sortedUniq(array):去重排序 ,会优化排序数组 _.sortedUniq([1, 1, 2]); // => [1, 2] _.tail(array):获取除了array数组第一个元素以外的全部元素。_.takeRight(array, [n=1]):创建一个数组切片,从array数组的最后一个元素开始提取n个元素。_.take(array, [n=1]):创建一个数组切片,从array数组的起始元素开始提取n个元素。 _.take([1, 2, 3]); // => [1] _.take([1, 2, 3], 2); // => [1, 2] _.take([1, 2, 3], 5); // => [1, 2, 3] _.take([1, 2, 3], 0); // => [] _.union([arrays]):创建一个按顺序排列的唯一值的数组。(注: arrays(数组)的并集,按顺序返回,返回数组的元素是唯一的) _.union([2], [1, 2]); // => [2, 1] _.uniq(array):创建一个去重后的array数组副本。只有第一次出现的元素才会被保留。_.without(array, [values]):创建一个剔除所有给定值的新数组,剔除值的时候 _.without([2, 1, 2, 3], 1, 2); // => [3] _.zip([arrays]):创建一个分组元素的数组,数组的第一个元素包含所有给定数组的第一个元素,数组的第二个元素包含所有给定数组的第二个元素,以此类推。 _.zip(['fred', 'barney'], [30, 40], [true, false]); // => [['fred', 30, true], ['barney', 40, false]] _.zipWith([arrays],function):不同之处在于它接受一个 iteratee(迭代函数),来 指定分组的值应该如何被组合。 该iteratee调用每个组的元素: (…group). _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { return a + b + c; }); // => [111, 222] _.without(array, [values]):创建一个剔除所有给定值的新数组 _.without([2, 1, 2, 3], 1, 2); // => [3] _.xor([arrays]):创建一个给定数组唯一值的数组(删除重复的元素),返回值的顺序取决于他们数组的出现顺序。 _.xor([2, 1], [2, 3]); // => [1, 3] _.xorBy([arrays],function):这个迭代器 调用每一个 arrays(数组)的每一个值,以生成比较的新值。iteratee 调用一个参数: (value)注意: 这个方法对于对于空集合返回 true,因为空集合的任何元素都是 true 。
_.every([true, 1, null, 'yes'], Boolean); // => false var users = [ { 'user': 'barney', 'age': 36, 'active': false }, { 'user': 'fred', 'age': 40, 'active': false } ]; // The `_.matches` iteratee shorthand. _.every(users, { 'user': 'barney', 'active': false }); // => false // The `_.matchesProperty` iteratee shorthand. _.every(users, ['active', false]); // => true // The `_.property` iteratee shorthand. _.every(users, 'active'); // => false _.filter(collection,function):遍历 collection(集合)元素,返回 predicate(断言函数)返回真值 的所有元素的数组。 predicate(断言函数)调用三个参数:(value, index|key, collection)。 var users = [ { 'user': 'barney', 'age': 36, 'active': true }, { 'user': 'fred', 'age': 40, 'active': false } ]; _.filter(users, function(o) { return !o.active; }); // => objects for ['fred'] // The `_.matches` iteratee shorthand. _.filter(users, { 'age': 36, 'active': true }); // => objects for ['barney'] // The `_.matchesProperty` iteratee shorthand. _.filter(users, ['active', false]); // => objects for ['fred'] // The `_.property` iteratee shorthand. _.filter(users, 'active'); // => objects for ['barney'] _.find(collection, function, [fromIndex=0]):遍历 collection(集合)元素,返回 predicate(断言函数)第一个返回真值的第一个元素。predicate(断言函数)调用3个参数: (value, index|key, collection)。 var users = [ { 'user': 'barney', 'age': 36, 'active': true }, { 'user': 'fred', 'age': 40, 'active': false }, { 'user': 'pebbles', 'age': 1, 'active': true } ]; _.find(users, function(o) { return o.age < 40; }); // => object for 'barney' // The `_.matches` iteratee shorthand. _.find(users, { 'age': 1, 'active': true }); // => object for 'pebbles' // The `_.matchesProperty` iteratee shorthand. _.find(users, ['active', false]); // => object for 'fred' // The `_.property` iteratee shorthand. _.find(users, 'active'); // => object for 'barney'