2016-10-04 19 views
0

私は以下のように)(array.findを使用して配列の要素を探しています:array.find()が何も返さない場合にメソッドを呼び出す方法は?

this.selectedLib = libraries.find(lib => lib.name === 'Standard'); 

今、このメソッドをチェック任意のライブラリは、名前「標準」やない、 を持っている場合、それは持っている場合、それは標準としてselectedLibを設定し、 '標準'。

名前がStandardのライブラリがない場合は、インデックス位置0のライブラリをselectedLibに設定します。以下のようなこの..

何か:

lib.name=='Standard' ? lib : libraries[0] 

はそれを行う方法はありますか?配列 の要素が設けられた検査機能を満たす場合

+2

'this.selectedLib = libraries.find(LIB => lib.name === '標準')||ライブラリ[0]; '? –

+0

@MatteoTassinariはこれを試しましたが、動作していません –

+0

@MatteoTassinari申し訳ありませんが、私はそれを確認しました。 –

答えて

1

検索()方法は、アレイ内を返します。それ以外の場合は未定義は が

を返さあります。

var libraries = [{ 
 
    name: "Not Standard", 
 
    id: 1 
 
}, { 
 
    name: "Not Standard", 
 
    id: 2 
 
}] 
 
var selectedLib = libraries.find(lib => lib.name === 'Standard') || libraries[0]; 
 
console.log(selectedLib);

関連する問題