この関数の優雅さを改善する方法があるかどうか疑問に思っています:
function findById(id) {
var items = [
{ Id: 1, Value: 'My value 1' },
{ Id: 2, Value: 'My value 2' }
];
var result = $.grep(items, function (obj) { return obj.Id === id; });
return result.length > 0 ? result[0] : null;
}
特に、私はむしろ次のように見えることを望みます:
function findById(id) {
var items = [
{ Id: 1, Value: 'My value 1' },
{ Id: 2, Value: 'My value 2' }
];
return $.grep(items, function (obj) { return obj.Id === id; })[0] || null;
}
これは明らかに失敗の山です。しかし、アイデアとしては、おそらく関数をよりクリーンに記述する方法があるということです。大したことではありませんが、何か不足している場合に備えてこれを書き留めておこうと思いました。
[編集] ご指摘のとおり、理想的なコードは問題なく動作します。空の配列の最初の要素にアクセスするとエラーがスローされると誤って想定していましたが、代わりに undefined が返されます。皆さんありがとう!