2017-08-18 4 views
1

異なる値(JSON構造)の配列を持っていますので、別の値に基づいて配列のアイテムを1つ取得する必要があります。条件に基づいて配列から1つのアイテムを取得

var orders= [{ 
    "id": 1, 
    "order": "11" 
    }, 
    { 
    "id": 2, 
    "order": "22" 
    }, 
    { 
    "id": 3, 
    "order": "33" 
    }]; 
var order = $.grep(orders, function (e) { return e.order === '22'; })[0]; 
var orderID = order ? order.id : 0; 

が、これはそれを行うための最も簡単な方法です:

これは私がこれまでにやったことありますか?

+2

'VARのmyOrder = orders.find(O => O ===順)' – Weedoze

+2

を使用することができます? ES6は 'var order = orders.find(e => e.order === order)'の 'find'を導入します。 – Ryan

+0

[Javascript:属性に基づいてオブジェクト配列をフィルタする方法](https://stackoverflow.com/questions/2722159/javascript-how-to-filter-object-array-based-on-attributes) –

答えて

4

ES6を使用すると、ブラウザのサポートはどのようなあなたが必要なのですArray#find

var orders= [{ id: 1, order: "11" }, { id: 2, order: "22" }, { id: 3, order: "33" }], 
 
    order = orders.find(o => o.order === "22"), 
 
    orderID = order ? order.id : 0; 
 

 
console.log(orderID);

+1

ありがとう、それは 'grep'機能よりもずっと簡単です、ありがとう! – user3378165

+0

見つかった 'order'の' id'を取得する必要がある場合は、2行目のコードが必要ですか?これは 'find'関数ではできません。 – user3378165

+1

'find'はアイテムが見つからなければ' undefined'を返します。後でチェックする必要があり、IDまたはデフォルト値を取得する –

関連する問題