在 underscore.js 中,pluck 方法可以获取一个对象数组中指定的属性值组成的数组。但如果需要在此基础上进行进一步筛选并获取多列数据时,我们可以借鉴 LINQ 的 Select 投影方法来实现。
首先,假设我们有如下对象数组:
----- ---- - - - ----- -------- ---- --- ------- -------- -- - ----- ------ ---- --- ------- ------ -- - ----- ---------- ---- --- ------- ------ - --
如果我们只想获取其中的姓名和年龄两列数据,可以使用 pluck 并结合 map 方法来实现:
----- ------ - ----------- --- -- ----------- -------- --------- -- ------- -- ----- -------- ---- -- -- - ----- ------ ---- -- -- - ----- ---------- ---- -- --
但这种方式较为繁琐,我们可以使用 where 和 pluck 方法结合起来,先筛选出符合条件的对象,再获取所需的多列数据。具体示例代码如下:
----- ------ - ------------- ---------- -- ---------- --- ------- -------------- ------ --------- -- ------- -------- ---- ----------- ----
这里使用了 underscore.js 提供的链式语法,通过 where 方法筛选出 gender 为 male 的对象,再使用 pluck 方法获取对应的 name 和 age 两列数据,最终得到一个二维数组。
这种方式虽然更加简洁,但需要注意的是 pluck 方法只能获取单列数据或者多个相邻的列数据。如果需要获取非相邻的多列数据,建议使用 map 方法结合对象解构来实现。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/25853