使用 underscore.js 从对象/数组中仅检索一个字段
Posted
技术标签:
【中文标题】使用 underscore.js 从对象/数组中仅检索一个字段【英文标题】:Retrieve only one field from object/array using underscore.js 【发布时间】:2014-03-28 09:45:30 【问题描述】:在 ruby 中,我可以执行以下操作:
myObject.map(&:name)
我得到一个由所有name
字段组成的数组,用于myObject
(数组或对象)中的所有值。
underscore.js 或 lodash.js 的等价物是什么?如果可能的话,我更喜欢只写一行:)
示例:(在 js 中)
_.map([name: 'x', name: 'y'], function(obj)
//dosomething
)
【问题讨论】:
【参考方案1】:_.pluck([name: 'x', name: 'y'],"name");
这会给你:["x","y"];
见http://underscorejs.org/#pluck
【讨论】:
使用 .map 你可以这样做:_.map(name: "x", name: "y", function(i, o) return o.name; );跨度> 谢谢!没看到那个^^ 这是小事 :)。不介意你接受作为答案 你的速度太快了,我得等 2 分钟 :p【参考方案2】:对于 lodash 用户,
_.map(['name': 'x', 'name': 'y'], 'name');
// ['x', 'y']
【讨论】:
请注意,他们有pluck
,但将其删除为仅使用 map
。但是pluck
确实存在于过去,并且可能存在,具体取决于您的版本。无论如何,map
在每个版本中始终可用,所以我想说这是要走的路。【参考方案3】:
使用纯javascript
只需使用map
let data = [name: 'x', name: 'y'];
data.map( (item) => item.name );
会回复你["x", "y"]
。
【讨论】:
非常非常好??以上是关于使用 underscore.js 从对象/数组中仅检索一个字段的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 underscore.js 在 Array 中找到对象的索引?