我曾经用过Lodash…我喜欢采摘……

意识到Lodash不再支持pluck(从Lodash 4.x开始),我努力记住用什么来代替…

我去看医生,点击cmd-f,输入“pluck”,但我可怜的被遗弃的朋友甚至没有得到适当的提及……甚至没有一个'has been replace by'…

谁能提醒我该用什么代替?


当前回答

或者尝试像这样的纯ES6 nonlodash方法

const reducer = (array, object) => {
  array.push(object.a)
  return array
}

var objects = [{ 'a': 1 }, { 'a': 2 }];
objects.reduce(reducer, [])

其他回答

啊哈!Lodash更新日志说明了一切…

“删除_。支持……带有迭代对象简写的映射”

var objects = [{ 'a': 1 }, { 'a': 2 }];

// in 3.10.1
_.pluck(objects, 'a'); // → [1, 2]
_.map(objects, 'a'); // → [1, 2]

// in 4.0.0
_.map(objects, 'a'); // → [1, 2]

使用_。Map而不是_.pluck。在最新版本中,_。拔毛已被移除。

没有必要。地图或_。自ES6起飞以来,我们一直在努力。

下面是一个使用ES6 JavaScript的替代方案:

剪辑。Map (clip => clip.id)

或者尝试像这样的纯ES6 nonlodash方法

const reducer = (array, object) => {
  array.push(object.a)
  return array
}

var objects = [{ 'a': 1 }, { 'a': 2 }];
objects.reduce(reducer, [])

如果你真的想_。拔下支持,你可以使用mixin:

const _ = require("lodash")

_.mixin({
    pluck: _.map
})

因为map现在支持字符串(“迭代器”)作为参数,而不是函数。