使用 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 中找到对象的索引?

backbone 唯一依赖库Underscore.js

underscore.js 的替代品

underscore.js

underscore.js 源码分析5 基础函数和each函数的使用

underscore.js 分析 第四天