2017-11-09 20 views
0

両方のパラメータが同じ型の場合、関数に与えられた非構造化多重引数の使い方を知りたい。例えば、私は次のコードを持っている
を考える:今すぐ関数定義でES6複数の非構造化引数を使用するには?

var items = [ 
    { name: 'Edward', value: 21 }, 
    { name: 'Sharpe', value: 37 }, 
    { name: 'And', value: 45 }, 
    { name: 'The', value: -12 }, 
    { name: 'Magnetic', value: 13 }, 
    { name: 'Zeros', value: 37 } 
]; 
// sort by name 
items.sort(function(a, b) { 
    var nameA = a.name.toUpperCase(); // ignore upper and lowercase 
    var nameB = b.name.toUpperCase(); // ignore upper and lowercase 
    if (nameA < nameB) { 
    return -1; 
    } 
    if (nameA > nameB) { 
    return 1; 
    } 

    // names must be equal 
    return 0; 
}); 

をあなたが見ることができるように、abオブジェクトの唯一のnameプロパティは、関数で使用されています。だから、どのように私は、コードを変更するために、このような何かをobject destructuringを使用します。

items.sort(({name}, {name}) => { 
    // code to use 
}); 

答えて

3

あなたが構造化代入の間に別の名前を割り当てることができます。

items.sort(({name : A}, {name : B}) => 
    A.toUpperCase().localeCompare(B.toUpperCase()) 
); 

を(そして、あなたが代わりにあなたの場合は、他のlocaleCompareを使用することができますロジック)

関連する問題