Lodash 中文文档 (v3.10.1) – “Collection” 要领
Translated by PeckZeg
Original Docs: Lodash v3.10.1 Docs
乞助
翻译文档的难度比设想中的要难,特别是内里比较学术的词语,愿望您再查阅的时刻发明不严谨/不好/不适当的表述或翻译的时刻能指正。
“Collection” 要领
_.at(collection, [props])
建立一个包括 collection
中响应给定的键、索引的元素数组。键必需指定为零丁的参数或键数组。
参数
collection
(Array|Object|string) : 待迭代的鸠合[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
。
参数
collection
(Array|Object|string) : 待迭代的鸠合[iteratee=_.identity]
(Function|Object|string) : 每次迭代实行的函数[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
参数
collection
(Array|Object|string) : 待迭代的鸠合[predicate=_.identity]
(Function|Object|string) : 每次迭代实行的函数[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
参数
collection
(Array|Object|string) : 待迭代的鸠合[predicate=_.identity]
(Function|Object|string) : 每次迭代实行时的函数[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
参数
collection
(Array|Object|string) : 待搜刮的鸠合[predicate=_.identity]
(Function|Object|string) : 每次迭代实行的函数[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
的一切元素。
参数
collection
(Array|Object|string) : 待搜刮的鸠合[predicate=_.identity]
(Function|Object|string) : ,每次迭代实行的函数[thisArg]
(*) :predicate
绑定的this
返回
(*) : 返回婚配的元素或 undefined
示例
_.findLast([1, 2, 3, 4], function(n) {
return n % 2 == 1;
});
// → 3
_.findWhere(collection, source)
对 collection
的每一个元素与源对象实行深层次的比较,返回第一个相符属性和属性值的元素。
注重:该要领支撑比较数组、布尔值、Date
对象,数值,Object
对象,正则表达式和字符串。对象将比较其具有的属性,而非内置的、不可罗列的属性。假如要比较单个或内置属性值请检察 _.matchesProperty
。
参数
collection
(Array|Object|string) : 待查找的鸠合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
参数
collection
(Array|Object|string) : 待迭代的鸠合[iteratee=_.identity]
(Function) : 每次迭代实行的函数[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
参数
collection
(Array|Object|string) : 待迭代的鸠合[iteratee=_.identity]
(Function) : 每次迭代实行的函数iteration.[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
。
参数
collection
(Array|Object|string) : 待迭代的鸠合[iteratee=_.identity]
(Function|Object|string) : 每次迭代实行的函数[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
参数
collection
(Array|Object|string) : 待查找的鸠合target
(*) : 待查找的值[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
。
参数
collection
(Array|Object|string) : 待迭代的鸠合[iteratee=_.identity]
(Function|Object|string) : 每次迭代实行的函数[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
的要领。返回一个实行要领返回的效果数组。在每一个要领实行的时刻将传入一切分外的参数。假如 methodName
是 collection
中每一个元素的可挪用函数,则其将绑定 this
。
参数
collection
(Array|Object|string) : 待迭代的鸠合path
(Array|Function|string) : 待实行要领的途径或每次迭代的可实行函数[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
, uniq
和 words
。
别号
_.collect
参数
collection
(Array|Object|string) : 待迭代的鸠合[iteratee=_.identity]
(Function|Object|string) : 每次迭代实行的函数[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
。
参数
collection
(Array|Object|string) : 待迭代的鸠合[predicate=_.identity]
(Function|Object|string) : 每次迭代实行的函数[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
的属性值。
参数
collection
(Array|Object|string) : 待迭代的鸠合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
参数
collection
(Array|Object|string) : 待迭代的鸠合[iteratee=_.identity]
(Function) : 每次实行时实行的函数[accumulator]
(*) : 初始值[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
参数
collection
(Array|Object|string) : 待迭代的鸠合[iteratee=_.identity]
(Function) : 每次迭代实行的函数[accumulator]
(*) : 初始值[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
后 没有 返回真值的元素。
参数
collection
(Array|Object|string) : 待迭代的鸠合[predicate=_.identity]
(Function|Object|string) : 每次迭代实行的函数[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
个元素。
参数
collection
(Array|Object|string) : 待取样的鸠合[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 洗牌算法 盘算后的数组。
参数
collection
(Array|Object|string) : 待洗牌的鸠合
返回
(Array) : 返回洗牌后的新数组
示例
_.shuffle([1, 2, 3, 4]);
// → [4, 1, 3, 2]
_.size(collection)
返回 collection
的长度,返回类数组对象的 length
值,或对象的自有可罗列属性的个数。
参数
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
参数
collection
(Array|Object|string) : 待迭代的鸠合[predicate=_.identity]
(Function|Object|string) : 每次迭代实行的函数[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
。
参数
collection
(Array|Object|string) : 待迭代的连系[iteratee=_.identity]
(Function|Object|string) : 每次迭代实行的函数[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
。
参数
collection
(Array|Object|string) : 待迭代的鸠合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
。
参数
collection
(Array|Object|string) : 待迭代的鸠合iteratees
(Function[]|Object[]|string[]) : 排序的迭代器(们)[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)
在 collection
与 source
的每一个元素间举行深度比较。返回一个包括双方都具有雷同属性值的元素的数组。
注重:该要领支撑比较数组、布尔值、Date
对象、数值、Object
对象,正则表达式和字符串。对象将比较其自有而非内置、可罗列的属性。假如须要比较单个自有或内置属性值请拜见 _.matchesProperty.
。
参数
collection
(Array|Object|string) : 待查找的鸠合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']