在 javascript 数组的每个对象中选择一个字段
Selecting a field in every object of a javascript array
我有一个身份验证方案,允许一个用户成为多家公司的员工。因此,当他们通过 access_token
进行身份验证时,access_token
允许他们在他们作为雇员的任何一家公司上进行交易。所以基本上用户只有一个登录,他们可以在不注销的情况下与他们所有的公司互动。
每当他们尝试执行某项操作时,我需要确保他们是他们要更改的公司的员工。
授权函数在其回调中有一个 employees
对象。这是一个这样的列表:
[ { _id: 555c990c37b3af9214754416,
company: 555c97d6b0b7e88d140810c6,
user: 555c990c37b3af9214754415,
__v: 0,
date_added: Wed May 20 2015 10:23:07 GMT-0400 (EDT),
permissions: { write: true, read: true } },
{ _id: 555c994937b3af921475441b,
company: 555c992537b3af9214754417,
user: 555c990c37b3af9214754415,
__v: 0,
date_added: Wed May 20 2015 10:23:07 GMT-0400 (EDT),
permissions: { write: true, read: true } } ]
每次调用 API 时都会执行此操作,即检查用户的 employee
对象列表;所以我想以最快和最简单的方式 select 来自每个对象的公司字段。虽然这可以使用 for 循环并编译 company
的列表轻松完成,但我需要它更简洁。
是否有针对此类事物的单一衬垫,一种在每个索引处 select 一个字段而不循环或在幕后完成循环的方法?
这会给你一个 bool
来判断该员工是否在公司。这种方法的好处在于,当找到 true 时,它会在循环外短路。
var isInCompany = _.some(employees, function(employee){
employee.company === companyId;
});
根据您支持的浏览器(IE9+),您也可以使用本机对象。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/some
也许您可以使用 Array.map 函数,例如:
yourList.map(function(obj){return obj.company})
这将 return 所有公司的列表。
lodash 和类似的库提供 pluck
,它们应该可以满足您的需求:
var companies = _.pluck(employees, 'company');
我有一个身份验证方案,允许一个用户成为多家公司的员工。因此,当他们通过 access_token
进行身份验证时,access_token
允许他们在他们作为雇员的任何一家公司上进行交易。所以基本上用户只有一个登录,他们可以在不注销的情况下与他们所有的公司互动。
每当他们尝试执行某项操作时,我需要确保他们是他们要更改的公司的员工。
授权函数在其回调中有一个 employees
对象。这是一个这样的列表:
[ { _id: 555c990c37b3af9214754416,
company: 555c97d6b0b7e88d140810c6,
user: 555c990c37b3af9214754415,
__v: 0,
date_added: Wed May 20 2015 10:23:07 GMT-0400 (EDT),
permissions: { write: true, read: true } },
{ _id: 555c994937b3af921475441b,
company: 555c992537b3af9214754417,
user: 555c990c37b3af9214754415,
__v: 0,
date_added: Wed May 20 2015 10:23:07 GMT-0400 (EDT),
permissions: { write: true, read: true } } ]
每次调用 API 时都会执行此操作,即检查用户的 employee
对象列表;所以我想以最快和最简单的方式 select 来自每个对象的公司字段。虽然这可以使用 for 循环并编译 company
的列表轻松完成,但我需要它更简洁。
是否有针对此类事物的单一衬垫,一种在每个索引处 select 一个字段而不循环或在幕后完成循环的方法?
这会给你一个 bool
来判断该员工是否在公司。这种方法的好处在于,当找到 true 时,它会在循环外短路。
var isInCompany = _.some(employees, function(employee){
employee.company === companyId;
});
根据您支持的浏览器(IE9+),您也可以使用本机对象。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/some
也许您可以使用 Array.map 函数,例如:
yourList.map(function(obj){return obj.company})
这将 return 所有公司的列表。
lodash 和类似的库提供 pluck
,它们应该可以满足您的需求:
var companies = _.pluck(employees, 'company');