At underscore js, Can I get multiple columns with pluck method after input where method as linq select projection

阅读时长 2 分钟读完

在 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

纠错
反馈