我有一个 Javascript 对象数组:
var List = [
{
employee:'Joe',
type:'holiday',
},
{
employee:'Jerry',
type:'seminar',
},
{
employee:'Joe',
type:'shore leave',
}
];
我想获得两个新的对象数组;一个用于关键员工“Joe”,另一个用于关键员工“Jerry”。对象应保留相同的键/值对。
我一直在尝试使用 underscore.js 找到解决方案,但它变得太复杂了。关于如何实现这一目标有什么想法吗?
var joe = List.filter(function(el){
return el.employee === "Joe"
});
var jerry = List.filter(function(el){
return el.employee === "Jerry"
});
这使用Array.prototype.filter并且适用于 IE9 及更高版本 + 所有最新的 Chrome/Firefox/Safari/Opera 版本。
如果您事先不知道名称,则可以创建地图
变量名称 = {};
for(var i =0; i<List.length; i++){
var ename = List[i].employee;
if(typeof names[ename] === "undefined"){
names[ename] = List.filter(function(el){
return el.employee === "ename"
});
}
}
附带说明一下,Javascript 约定是仅将构造函数的变量的第一个字母大写。所以列表可能应该是列表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)