【发布时间】:2020-12-05 00:31:32
【问题描述】:
我有两个可选参数用于过滤数组。
由于它们是可选的,因此我使用了两个 if 语句,但我很好奇是否有更有效/速记的方式。
// initializing list of users
var users = [{
name: 'John',
email: 'johnson@mail.com',
age: 25,
address: 'USA'
},
{
name: 'Tom',
email: 'tom@mail.com',
age: 35,
address: 'England'
},
{
name: 'Mark',
email: 'mark@mail.com',
age: 28,
address: 'England'
}
];
if (args.name){
users = users.filter(x => x.name == args.name);
}
if (args.address){
users = users.filter(x => x.address == args.address);
}
return users;
【问题讨论】:
-
"shorthand":这不是已经很短了吗? “高效”:你有时间问题吗?我的意思是,老式的
for循环是最快的,但你为什么要这样做?而且关于性能和风格的问题更适合Code Review -
您可以创建一个方法并将参数传递给您要过滤数据的属性。
标签: javascript filter