2016-07-26 4 views
-1

iがオブジェクト戻りオブジェクトが

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)」になるからです。各配列項目はオブジェクト(ハッシュマップ)であるため、個々のキーのルックアップは 'O(1)'であり、 'n(O)(n)'を意味する 'n'個の項目があります。これを改善することは不可能です。メモリから大きな配列を読み込むにはすでに 'O(n)'時間がかかるからです。 –

+0

うん。コードはそれほど冗長ではないかもしれませんが、私の主張は別の答えに値するとは思わないと思います。パフォーマンスの問題も正しいです。 OPが非効率で、なぜそれを改善する必要があるのか​​を指定できない限り、私はこれが答えられるとは思わない。現時点で最良のシナリオは、重要ではないマイナーな微視的な状況です。 – vlaz

関連する問題