2016-07-26 59 views
-1

可以说我有对象具体返回的对象属性

var x = [{ 
    a:'asd', 
    b:'ss' 
},{ 
    a:'s', 
    b:'f', 
    c:'asd' 
},{ 
    a:'tt', 
    g:'f', 
    b:'ulaN' 
}]; 

的数组,我想返回对象的数组,使用对象只具有ab属性。

我解决了这个与

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

但似乎不太efficent在我看来,有没有更好的方式该怎么办呢?

+10

这是为什么效率低? – JordanHendrix

回答

0

你当然可以这样做缩短这个代码:

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

通过...删除一个新行和一个'return'语句。我真的不明白这是如何回答这个问题的。另一方面,我不完全确定问题的答案是什么,因为它最好是模糊而宽泛的。 – vlaz

+0

同意,从代码性能的角度来看,它不是更高效。这只是较为冗长。我认为从性能的角度来看,代码不会很容易变得更高效,因为不管你做什么,它都是'O(n)',根据我的知识这是无法改进的。由于每个数组项都是一个对象(hashmap),所以对单个键的查找是'O(1)',并且有'n'个项,意味着'O(n)'。这是不可能的,因为从内存中读取一个大数组需要'O(n)'时间。 –

+0

是的。代码可能不太详细,但我的观点是,我认为这不值得一个单独的答案。表现的东西也是正确的。除非OP可以指定_what_效率低以及为什么需要改进,否则我不认为这是可以回答的问题。目前最好的情况是微不足道的微观优化。 – vlaz