build in functionality to at, add string support, optimize, and add more tests

Former-commit-id: 951ef27e55fff5a70d09916b55b85f9e725f751a
This commit is contained in:
Dan Heberden
2012-12-18 15:09:57 -08:00
parent c86a16df7f
commit 4a0897c734
2 changed files with 20 additions and 2 deletions

View File

@@ -1956,8 +1956,20 @@
* _.at( ['lodash', 'javascript', 'fast'], 0, 2 );
* // => ['lodash, 'fast']
*/
function at(collection, list) {
return values(pick(collection || [], concat.apply(arguments, slice(arguments, 1))));
function at(collection) {
var index = -1,
props = concat.apply(arrayRef, slice(arguments, 1)),
length = props.length,
result = Array(length);
if (noCharByIndex && isString(collection)) {
collection = collection.split('');
}
while(++index < length) {
result[index] = collection[props[index]];
}
return result;
}
/**