Javascript 返回具有特定属性的对象

Javascript 返回具有特定属性的对象,javascript,object,Javascript,Object,假设我有一个对象数组 var x = [{ a:'asd', b:'ss' },{ a:'s', b:'f', c:'asd' },{ a:'tt', g:'f', b:'ulaN' }]; 我想返回对象数组,对象只有a和b属性 我和你一起解决了这个问题 x = x.map( y => { return { a:y.a, b:y.b } }); 但在我看来,这似乎不是很有效,有没有更好的方

假设我有一个对象数组

var x = [{
   a:'asd',
     b:'ss'
},{
   a:'s',
     b:'f',
     c:'asd'
},{
  a:'tt',
    g:'f',
    b:'ulaN'
}];
我想返回对象数组,对象只有
a
b
属性

我和你一起解决了这个问题

x = x.map( y => {
   return {
     a:y.a,
     b:y.b
     }
});

但在我看来,这似乎不是很有效,有没有更好的方法可以做到这一点?

您当然可以通过以下方式缩短此代码:

x = x.map( y => ({
  a: y.a,
  b: y.b
}));

为什么效率很低?通过删除新行和
return
语句。我真的不明白这是怎么回答这个问题的。另一方面,我不完全确定这个问题的答案是什么,因为它充其量只是一个模糊而宽泛的问题。我同意,从代码性能的角度来看,它没有任何效率。只是没那么冗长。我认为从性能的角度来看,代码不容易变得更高效,因为无论你做什么,它都是
O(n)
,据我所知,这是无法改进的。由于每个数组项都是一个对象(hashmap),因此对单个键的查找是
O(1)
,并且有
n
项,意思是
O(n)
。要改善这一点是不可能的,因为从内存中读取一个大数组已经花费了
O(n)
时间。是的。代码可以不那么冗长,但我的观点是,我认为这不值得单独回答。性能方面的东西也是正确的。除非OP能说明什么是低效的以及为什么需要改进,否则我不认为这是可以回答的问题。目前最好的情况是不重要的微小优化。