什么是lodash" nth"功能好吗?

时间:2016-11-19 00:30:35

标签: javascript lodash

lodash函数_.nth(array, n)返回数组的第n项。我很难想象这个函数比简单地写array[n]更好的情况。

即使编写lambda函数的开销,本机语法也会更短。例如,要按第五个元素对数组进行排序:

_.sortBy(array, _.partial(_.nth(_, 5)));
_.sortBy(array, x => x[5]);

第二个版本明显更短,更易读,更快。

可能最好使用此功能的情况的例子是什么?

3 个答案:

答案 0 :(得分:3)

  

如果n为负数,则返回结尾的第n个元素。

这模仿了Ruby风格的数组索引语义,当您需要从右侧进行索引时,它可用于较不详细的代码。

答案 1 :(得分:3)

_。nth对链接很有用

没有_.nth

var secondItem = _.chain(data)
    .filter()
    .map()
    .value()[1];
var neededValue = _.chain(secondItem)
    .reduce()
    .filter()
    .value();
带有_.nth

var neededValue = _.chain(data)
    .filter()
    .map()
    .nth(1)
    .reduce()
    .filter()
    .value();

答案 2 :(得分:2)

为了扩展mpen的评论,我认为_.nthlodash/fp中更有用,它可以用于Python的itemgetter

let sortByHead = _.sortBy(_.nth(0));

sortByHead([[0, 1], [-1, 2], [3, 4]]);
// [ [ -1, 2 ], [ 0, 1 ], [ 3, 4 ] ]

在香草Lodash中,据我所知,它的用处仅限于否定索引。