Lodash 中文文档 (v3.10.1) - “Collection” 要领

Lodash 中文文档 (v3.10.1) – “Collection” 要领

Translated by PeckZeg
Original Docs: Lodash v3.10.1 Docs

乞助

翻译文档的难度比设想中的要难,特别是内里比较学术的词语,愿望您再查阅的时刻发明不严谨/不好/不适当的表述或翻译的时刻能指正。

“Collection” 要领

_.at(collection, [props])

建立一个包括 collection 中响应给定的键、索引的元素数组。键必需指定为零丁的参数或键数组。

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. [props] (…(number|number[]|string|string[]) : 待抽取的属性名或索引(可零丁指定也可存放在一个数组中)

返回

(Array) : 返回已抽取的元素的新数组

示例

_.at(['a', 'b', 'c'], [0, 2]);
// → ['a', 'c']

_.at(['barney', 'fred', 'pebbles'], 0, 2);
// → ['barney', 'pebbles']

_.countBy(collection, [iteratee=_.identity], [thisArg])

建立一个由 collection 的每一个元素经由 iteratee 天生的键值所构成的对象。每一个键对应的值为 iteratee 返回的天生键的次数。iteratee 绑定 thisArg 并在实行时传入三个参数:value, index|key, collection

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. [iteratee=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : iteratee 绑定的 this

返回

(Object) : 返回yi已构成的聚合对象

示例

_.countBy([4.3, 6.1, 6.4], function(n) {
  return Math.floor(n);
});
// → { '4': 1, '6': 2 }

_.countBy([4.3, 6.1, 6.4], function(n) {
  return this.floor(n);
}, Math);
// → { '4': 1, '6': 2 }

_.countBy(['one', 'two', 'three'], 'length');
// → { '3': 2, '5': 1 }

_.every(collection, [predicate=_.identity], [thisArg])

搜检 collection每一个 元素在经由 predicate 检测以后是不是都返回真值。断言函数绑定 thisArg 并在实行时传入三个参数:value, index|key, collection

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

别号

  • _.all

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. [predicate=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : predicate 绑定的 this 对象

返回

(boolean) : 在一切元素都经由过程断言函数搜检时返回 true,不然返回 false

示例

_.every([true, 1, null, 'yes'], Boolean);
// → false

var users = [
  { 'user': 'barney', 'active': false },
  { 'user': 'fred',   'active': false }
];

// 运用 `_.matches` 回调函数简称
_.every(users, { 'user': 'barney', 'active': false });
// → false

// 运用 `_.matchesProperty` 回调函数简称
_.every(users, 'active', false);
// → true

// 运用 `_.property` 回调函数简称
_.every(users, 'active');
// → false

_.filter(collection, [predicate=_.identity], [thisArg])

迭代 collection 的每一个元素,返回一个包括一切元素在传入 predicate 并返回真值的数组。断言函数绑定 thisArg 并在实行时传入三个参数:value, index|key, collection

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

别号

  • _.select

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. [predicate=_.identity] (Function|Object|string) : 每次迭代实行时的函数

  3. [thisArg] (*) : predicate 绑定的 this

返回

(Array) : 返回一个已过滤的新数组

示例

_.filter([4, 5, 6], function(n) {
  return n % 2 == 0;
});
// → [4, 6]

var users = [
  { 'user': 'barney', 'age': 36, 'active': true },
  { 'user': 'fred',   'age': 40, 'active': false }
];

// 运用 `_.matches` 回调函数简称
_.pluck(_.filter(users, { 'age': 36, 'active': true }), 'user');
// → ['barney']

// 运用 `_.matchesProperty` 回调函数简称
_.pluck(_.filter(users, 'active', false), 'user');
// → ['fred']

// 运用 `_.property` 回调函数简称
_.pluck(_.filter(users, 'active'), 'user');
// → ['barney']

_.find(collection, [predicate=_.identity], [thisArg])

迭代 collection 的一切元素,返回第一个经由过程 predicate 并返回真值的元素。断言函数绑定 thisArg 并在实行时返回三个元素:value, index|key, collection

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

别号

  • _.detect

参数

  1. collection (Array|Object|string) : 待搜刮的鸠合

  2. [predicate=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : predicate 绑定的 this

返回

(*) : 返回婚配的元素或 undefined

示例

var users = [
  { 'user': 'barney',  'age': 36, 'active': true },
  { 'user': 'fred',    'age': 40, 'active': false },
  { 'user': 'pebbles', 'age': 1,  'active': true }
];

_.result(_.find(users, function(chr) {
  return chr.age < 40;
}), 'user');
// → 'barney'

// 运用 `_.matches` 回调函数的简称
_.result(_.find(users, { 'age': 1, 'active': true }), 'user');
// → 'pebbles'

// 运用 `_.matchesProperty` 回调函数的简称
_.result(_.find(users, 'active', false), 'user');
// → 'fred'

// 运用 `_.property` 回调函数的简称
_.result(_.find(users, 'active'), 'user');
// → 'barney'

_.findLast(collection, [predicate=_.identity], [thisArg])

该要领相似 _.find,但其从右到左迭代 collection 的一切元素。

参数

  1. collection (Array|Object|string) : 待搜刮的鸠合

  2. [predicate=_.identity] (Function|Object|string) : ,每次迭代实行的函数

  3. [thisArg] (*) : predicate 绑定的 this

返回

(*) : 返回婚配的元素或 undefined

示例

_.findLast([1, 2, 3, 4], function(n) {
  return n % 2 == 1;
});
// → 3

_.findWhere(collection, source)

collection 的每一个元素与源对象实行深层次的比较,返回第一个相符属性和属性值的元素。

注重:该要领支撑比较数组、布尔值、Date 对象,数值,Object 对象,正则表达式和字符串。对象将比较其具有的属性,而非内置的、不可罗列的属性。假如要比较单个或内置属性值请检察 _.matchesProperty

参数

  1. collection (Array|Object|string) : 待查找的鸠合

  2. source (Object) : 待婚配的属性值对象

返回

_(*)_: 返回婚配的元素或 undefined

示例

var users = [
  { 'user': 'barney', 'age': 36, 'active': true },
  { 'user': 'fred',   'age': 40, 'active': false }
];

_.result(_.findWhere(users, { 'age': 36, 'active': true }), 'user');
// → 'barney'

_.result(_.findWhere(users, { 'age': 40, 'active': false }), 'user');
// → 'fred'

_.forEach(collection, [iteratee=_.identity], [thisArg])

Iterates over elements of collection invoking iteratee for each element. The iteratee is bound to thisArg and invoked with three arguments:
(value, index|key, collection). Iteratee functions may exit iteration early by explicitly returning false.

collection 的每一个元素实行 iteratee 迭代器,该迭代器将绑定 thisArg 并在实行中传入三个参数:value, index|key, collection。迭代器将在明白返回 false 时提早退出迭代。

Note: As with other “Collections” methods, objects with a “length” property are iterated like arrays. To avoid this behavior _.forIn or _.forOwn may be used for object iteration.

注重:犹如和其他 “Collections” 要领,具有“长度”属性的可迭代类数组对象,须要防止 _.forIn_.forOwn 运用在此类对象的行动。

别号

  • _.each

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. [iteratee=_.identity] (Function) : 每次迭代实行的函数

  3. [thisArg] (*) : iteratee 绑定的 this

返回

(Array|Object|string) : 返回鸠合

示例

_([1, 2]).forEach(function(n) {
  console.log(n);
}).value();
// → 纪录从左到右的每一个值,并返回数组

_.forEach({ 'a': 1, 'b': 2 }, function(n, key) {
  console.log(n, key);
});
// → 纪录每一个 值-键 对并返回对象(不保证迭代的递次)

_.forEachRight(collection, [iteratee=_.identity], [thisArg])

该要领相似 _.forEach,但其从右往左最先迭代 collection 的每一个元素

别号

  • _.eachRight

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. [iteratee=_.identity] (Function) : 每次迭代实行的函数iteration.

  3. [thisArg] (*) : iteratee 绑定的 this

返回

(Array|Object|string) : 返回鸠合

示例

_([1, 2]).forEachRight(function(n) {
  console.log(n);
}).value();
// → 从右到左纪录每一个值并返回数组

_.groupBy(collection, [iteratee=_.identity], [thisArg])

建立一个由 collection 的每一个元素实行 iteratee 天生的键所构成的对象。每一个天生的键对应的值是由每次天生该键所对应的元素所构成的数组。该迭代器绑定 thisArg 并在实行时传入三个参数:value, index|key, collection

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. [iteratee=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : iteratee 绑定的 this

返回

(Object) : 返回已构成的聚合对象

示例

_.groupBy([4.2, 6.1, 6.4], function(n) {
  return Math.floor(n);
});
// → { '4': [4.2], '6': [6.1, 6.4] }

_.groupBy([4.2, 6.1, 6.4], function(n) {
  return this.floor(n);
}, Math);
// → { '4': [4.2], '6': [6.1, 6.4] }

// 运用 `_.property` 回调函数简称
_.groupBy(['one', 'two', 'three'], 'length');
// → { '3': ['one', 'two'], '5': ['three'] }

_.includes(collection, target, [fromIndex=0])

搜检 target 是不是在 collection 中(运用 SameValueZero 举行相称性比较)。假如 fromIndex 为负数,则其为相对于 collection 末端的位移。

别号

  • _.contains

  • _.include

参数

  1. collection (Array|Object|string) : 待查找的鸠合

  2. target (*) : 待查找的值

  3. [fromIndex=0] (number) : 待查找的索引位置

返回

(boolean) : 在一个婚配元素被查找到时返回 true 不然返回 false

示例

_.includes([1, 2, 3], 1);
// → true

_.includes([1, 2, 3], 1, 2);
// → false

_.includes({ 'user': 'fred', 'age': 40 }, 'fred');
// → true

_.includes('pebbles', 'eb');
// → true

_.indexBy(collection, [iteratee=_.identity], [thisArg])

Creates an object composed of keys generated from the results of running each element of collection through iteratee. The corresponding value of each key is the last element responsible for generating the key. The iteratee function is bound to thisArg and invoked with three arguments:
(value, index|key, collection).

建立一个由 collection 的每一个元素实行 iteratee 天生的键所构成的对象。每一个天生的键对应的值是由末了一个天生该键所对应的元素。该迭代器绑定 thisArg 并在实行时传入三个参数:value, index|key, collection

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. [iteratee=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : iteratee 绑定的 this

返回

(Object) : 返回已构成的聚合对象。

示例

var keyData = [
  { 'dir': 'left', 'code': 97 },
  { 'dir': 'right', 'code': 100 }
];

_.indexBy(keyData, 'dir');
// → { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }

_.indexBy(keyData, function(object) {
  return String.fromCharCode(object.code);
});
// → { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }

_.indexBy(keyData, function(object) {
  return this.fromCharCode(object.code);
}, String);
// → { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }

_.invoke(collection, path, [args])

collection 的每一个元素实行位于 path 的要领。返回一个实行要领返回的效果数组。在每一个要领实行的时刻将传入一切分外的参数。假如 methodNamecollection 中每一个元素的可挪用函数,则其将绑定 this

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. path (Array|Function|string) : 待实行要领的途径或每次迭代的可实行函数

  3. [args] (…*) : 要领实行时传入的参数

返回

(Array) : 返回效果数组

示例

_.invoke([[5, 1, 7], [3, 2, 1]], 'sort');
// → [[1, 5, 7], [1, 2, 3]]

_.invoke([123, 456], String.prototype.split, '');
// → [['1', '2', '3'], ['4', '5', '6']]

_.map(collection, [iteratee=_.identity], [thisArg])

建立一个由 collection 的每一个元素经由过程 iteratee 返回的值的数组。该迭代器绑定 thisArg 并在实行时传入三个参数:value, index|key, collection

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

很多 lodash 要领在以迭代器的身份被诸如 _.every, _.filter, _.map, _.mapValues, _.reject_.some 要领实行时会被保卫。

保卫要领有:

ary, callback, chunk, clone, create, curry, curryRight, drop, dropRight, every, fill, flatten, invert, max, min, parseInt, slice, sortBy, take, takeRight, template, trim, trimLeft, trimRight, trunc, random, range, sample, some, sum, uniqwords

别号

  • _.collect

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. [iteratee=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : iteratee 绑定的 this

返回

(Array) : 返回已映照的新数组

示例

function timesThree(n) {
  return n * 3;
}

_.map([1, 2], timesThree);
// → [3, 6]

_.map({ 'a': 1, 'b': 2 }, timesThree);
// → [3, 6] (iteration order is not guaranteed)

var users = [
  { 'user': 'barney' },
  { 'user': 'fred' }
];

// 运用 `_.property` 回调函数简称
_.map(users, 'user');
// → ['barney', 'fred']

_.partition(collection, [predicate=_.identity], [thisArg])

建立一个包括分红两个分组的数组,第一个分组包括实行 predicate 后返回真值的元素,同时,实行 predicate 后返回假值的元素将被包括于第二个分组当中。断言函数将绑定 thisArg 并在实行时传入三个参数:value, index|key, collection

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. [predicate=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : predicate 绑定的 this

返回

(Array) : 返回包括已分组元素的数组

示例

_.partition([1, 2, 3], function(n) {
  return n % 2;
});
// → [[1, 3], [2]]

_.partition([1.2, 2.3, 3.4], function(n) {
  return this.floor(n) % 2;
}, Math);
// → [[1.2, 3.4], [2.3]]

var users = [
  { 'user': 'barney',  'age': 36, 'active': false },
  { 'user': 'fred',    'age': 40, 'active': true },
  { 'user': 'pebbles', 'age': 1,  'active': false }
];

var mapper = function(array) {
  return _.pluck(array, 'user');
};

// 运用 `_.matches` 回调函数简称
_.map(_.partition(users, { 'age': 1, 'active': false }), mapper);
// → [['pebbles'], ['barney', 'fred']]

// 运用 `_.matchesProperty` 回调函数简称
_.map(_.partition(users, 'active', false), mapper);
// → [['barney', 'pebbles'], ['fred']]

// 运用 `_.property` 回调函数简称
_.map(_.partition(users, 'active'), mapper);
// → [['fred'], ['barney', 'pebbles']]

_.pluck(collection, path)

Gets the property value of path from all elements in collection.

collection 中猎取一切基于 path 的属性值。

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. path (Array|string) : 待猎取的属性途径

返回

(Array) : 返回属性值

示例

var users = [
  { 'user': 'barney', 'age': 36 },
  { 'user': 'fred',   'age': 40 }
];

_.pluck(users, 'user');
// → ['barney', 'fred']

var userIndex = _.indexBy(users, 'user');
_.pluck(userIndex, 'age');
// → [36, 40] (iteration order is not guaranteed)

_.reduce(collection, [iteratee=_.identity], [accumulator], [thisArg])

Reduces collection to a value which is the accumulated result of running each element in collection through iteratee, where each successive invocation is supplied the return value of the previous. If accumulator is not provided the first element of collection is used as the initial value. The iteratee is bound to thisArg and invoked with four arguments: (accumulator, value, index|key, collection).

减少 collection 直至成为一个值,在 collection 中对每一个元素实行iteratee 而猎取的累加值效果(在每次一连挪用之前须要供应返回值,假如 collection 的第一个元素没有供应 accumulator,则其能够用来作为初始值)。iteratee 绑定 thisArg 并在实行时传入四个参数:accumulator, value, index|key, collection

很多 lodash 要领在以迭代器的身份被诸如 _.reduce, _.reduceRight_.transform 要领实行时会被保卫。

保卫要领有:

assign, defaults, defaultsDeep, includes, merge, sortByAll, 和 sortByOrder

别号

  • _.foldl

  • _.inject

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. [iteratee=_.identity] (Function) : 每次实行时实行的函数

  3. [accumulator] (*) : 初始值

  4. [thisArg] (*) : iteratee 绑定的 this

返回

(*) : 返回累加值

示例

_.reduce([1, 2], function(total, n) {
  return total + n;
});
// → 3

_.reduce({ 'a': 1, 'b': 2 }, function(result, n, key) {
  result[key] = n * 3;
  return result;
}, {});
// → { 'a': 3, 'b': 6 } (不保证实行的递次)

_.reduceRight(collection, [iteratee=_.identity], [accumulator], [thisArg])

该要领相似 _.reduce,但其将从右往左顺次迭代 collection 的元素。

别号

  • _.foldr

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. [iteratee=_.identity] (Function) : 每次迭代实行的函数

  3. [accumulator] (*) : 初始值

  4. [thisArg] (*) : iteratee 绑定的 this

返回

(*) : 返回累加值

示例

var array = [[0, 1], [2, 3], [4, 5]];

_.reduceRight(array, function(flattened, other) {
  return flattened.concat(other);
}, []);
// → [4, 5, 2, 3, 0, 1]

_.reject(collection, [predicate=_.identity], [thisArg])

The opposite of _.filter; this method returns the elements of collection that predicate does not return truthy for.

_.filter 作用相反,该要领返回 collection 的实行 predicate没有 返回真值的元素。

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. [predicate=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : predicate 绑定的 this

返回

(Array) : 返回已过虑的新数组

示例

_.reject([1, 2, 3, 4], function(n) {
  return n % 2 == 0;
});
// → [1, 3]

var users = [
  { 'user': 'barney', 'age': 36, 'active': false },
  { 'user': 'fred',   'age': 40, 'active': true }
];

// 运用 `_.matches` 回调函数简称
_.pluck(_.reject(users, { 'age': 40, 'active': true }), 'user');
// → ['barney']

// 运用 `_.matchesProperty` 回调函数简称
_.pluck(_.reject(users, 'active', false), 'user');
// → ['fred']

// 运用 `_.property` 回调函数简称
_.pluck(_.reject(users, 'active'), 'user');
// → ['barney']

_.sample(collection, [n])

从鸠合中随机猎取一个或 n 个元素。

参数

  1. collection (Array|Object|string) : 待取样的鸠合

  2. [n] (number) : 掏出样本元素的数目

返回

(*) : 返回随机的样本(们)。

示例

_.sample([1, 2, 3, 4]);
// → 2

_.sample([1, 2, 3, 4], 2);
// → [3, 1]

_.shuffle(collection)

Creates an array of shuffled values, using a version of the Fisher-Yates shuffle.

建立一个经 Fisher-Yates 洗牌算法 盘算后的数组。

参数

  1. collection (Array|Object|string) : 待洗牌的鸠合

返回

(Array) : 返回洗牌后的新数组

示例

_.shuffle([1, 2, 3, 4]);
// → [4, 1, 3, 2]

_.size(collection)

返回 collection 的长度,返回类数组对象的 length 值,或对象的自有可罗列属性的个数。

参数

  1. collection (Array|Object|string) : 待搜检的鸠合

返回

(number) : 返回 collection 的长度

示例

_.size([1, 2, 3]);
// → 3

_.size({ 'a': 1, 'b': 2 });
// → 2

_.size('pebbles');
// → 7

_.some(collection, [predicate=_.identity], [thisArg])

只需 collection一个 元素经由过程 predicate 搜检就返回真值。该函数在找到经由过程的值后马上返回,一切并不会迭代全部鸠合。该断言函数绑定 thisArg 并在实行时传入三个参数:value, index|key, collection

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

别号

  • _.any

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. [predicate=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : predicate 绑定的 this

返回

(boolean) : Returns true if any element passes the predicate check, else false.

示例

_.some([null, 0, 'yes', false], Boolean);
// → true

var users = [
  { 'user': 'barney', 'active': true },
  { 'user': 'fred',   'active': false }
];

// 运用 `_.matches` 回调函数简称
_.some(users, { 'user': 'barney', 'active': false });
// → false

// 运用 `_.matchesProperty` 回调函数简称
_.some(users, 'active', false);
// → true

// 运用 `_.property` 回调函数简称
_.some(users, 'active');
// → true

_.sortBy(collection, [iteratee=_.identity], [thisArg])

建立一个数组。对鸠合的每一个元素实行 iteratee 后的效果举行升序整顿。该要领实行的是稳固排序,即其保留了本来的排序递次。iteratee 绑定 thisArg 并在实行时传入三个参数:value, index|key, collection

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

参数

  1. collection (Array|Object|string) : 待迭代的连系

  2. [iteratee=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : iteratee 绑定的 this

返回

(Array) : 返回已排序的新数组

示例

_.sortBy([1, 2, 3], function(n) {
  return Math.sin(n);
});
// → [3, 1, 2]

_.sortBy([1, 2, 3], function(n) {
  return this.sin(n);
}, Math);
// → [3, 1, 2]

var users = [
  { 'user': 'fred' },
  { 'user': 'pebbles' },
  { 'user': 'barney' }
];

// 运用 `_.property` 回调函数的简称
_.pluck(_.sortBy(users, 'user'), 'user');
// → ['barney', 'fred', 'pebbles']

_.sortByAll(collection, iteratees)

该要领相似 _.sortBy,但其能运用多个迭代器或属性名。

假如属性名被供应给迭代器,则其将建立 _.property 作风的回调函数,并返回给定元素的属性值。

假如对象被供应给迭代器,则其将建立_.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. iteratees (…(Function|Function[]|Object|Object[]|string|string[]) : 排序迭代器,可指定为多个零丁的迭代器或一个迭代器数组

返回

(Array) : 返回已排序的新数组

示例

var users = [
  { 'user': 'fred',   'age': 48 },
  { 'user': 'barney', 'age': 36 },
  { 'user': 'fred',   'age': 42 },
  { 'user': 'barney', 'age': 34 }
];

_.map(_.sortByAll(users, ['user', 'age']), _.values);
// → [['barney', 34], ['barney', 36], ['fred', 42], ['fred', 48]]

_.map(_.sortByAll(users, 'user', function(chr) {
  return Math.floor(chr.age / 10);
}), _.values);
// → [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]

_.sortByOrder(collection, iteratees, [orders])

该要领相似 _.sortByAll,但其许可指定迭代器排序的体式格局。假如未指定 orders,则一切值运用升序分列。另外,asc 示意升序,desc 则示意降序。

假如属性名被供应给迭代器,则其将建立 _.property 作风的回调函数,并返回给定元素的属性值。

假如对象被供应给迭代器,则其将建立_.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

参数

  1. collection (Array|Object|string) : 待迭代的鸠合

  2. iteratees (Function[]|Object[]|string[]) : 排序的迭代器(们)

  3. [orders] (string[]) : 迭代器的排序方向

返回

(Array) : 返回已排序的新数组

示例

var users = [
  { 'user': 'fred',   'age': 48 },
  { 'user': 'barney', 'age': 34 },
  { 'user': 'fred',   'age': 42 },
  { 'user': 'barney', 'age': 36 }
];

// sort by `user` in ascending order and by `age` in descending order
_.map(_.sortByOrder(users, ['user', 'age'], ['asc', 'desc']), _.values);
// → [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]

_.where(collection, source)

collectionsource 的每一个元素间举行深度比较。返回一个包括双方都具有雷同属性值的元素的数组。

注重:该要领支撑比较数组、布尔值、Date 对象、数值、Object 对象,正则表达式和字符串。对象将比较其自有而非内置、可罗列的属性。假如须要比较单个自有或内置属性值请拜见 _.matchesProperty.

参数

  1. collection (Array|Object|string) : 待查找的鸠合

  2. source (Object) : 带婚配的属性值对象。

返回

(Array) : 返回已过虑的新数组

示例

var users = [
  { 'user': 'barney', 'age': 36, 'active': false, 'pets': ['hoppy'] },
  { 'user': 'fred',   'age': 40, 'active': true, 'pets': ['baby puss', 'dino'] }
];

_.pluck(_.where(users, { 'age': 36, 'active': false }), 'user');
// → ['barney']

_.pluck(_.where(users, { 'pets': ['dino'] }), 'user');
// → ['fred']
    原文作者:PeckZeg
    原文地址: https://segmentfault.com/a/1190000004268842
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞