単純な任意のデータに対して、オブジェクトの配列を使用したコードの例を示します。const 1ライナーのオブジェクト値を返す
下部にconstの機能私のフライト番号がflightNu
var flights = [{
"id": 1234,
"airline": "Delta",
"depart": "11/23/2016 10:25 AM",
"arrive": "11/23/2016 11:35 AM",
"from": "TPA",
"to": "MEM"
}, {
"id": 4321,
"airline": "AA",
"depart": "11/23/2016 12:25 PM",
"arrive": "11/23/2016 2:35 PM",
"from": "DWF",
"to": "SEA"
}]
var flightNu = 4321;
const flightDetails = (a) =>
a.map(f => (f.id == flightNu) ? f : null)
console.log(flightDetails(flights))
として表さ見つけるだから私の質問は、適切にこれは[null, Object]
オブジェクトを返している
const flightDetails = (a) =>
a.map(f => (f.id == flightNu) ? f : null)
このconstの関数を定義してある正しいです1つ、飛行ニュー。 それを見つけました。クールですが、100個のオブジェクトを追加すると、99個のヌルが返されます。それは99の問題ですが、一致するフライト番号は1つではありません。 (申し訳ありません)
誰かがこれを使用する良い方法についていくつかの光を当てることができますか?たぶん私は三項演算子を使うべきではない。もし私が適切なf[index]
を返すことができれば素晴らしいだろう。
は、好ましくは、別の変数
var MatchingFlight;
const flightDetails = (a) =>
a.map(f => {
if (f.id === flightNu){
MatchingFlight = f;
}
}) ? MatchingFlight : null //returns Object {} close but meh
にオブジェクトを割り当てずにこのコードは、提案されたゴール感覚で動作しますが、スコープ外MatchingFlightを定義するconst
のために右のようではありません。
のようなものを返すJavaScriptで
filter
を使用することができます。 'map'の代わりに –は' filter'を使います。 – abhishekkannojia
@torazaburoよく動作するシナリオのアップデートを追加しました。他のスニペットも動作しますが、真の答えはスニペットではない3つの可能なメソッドを持つSLakです。完全性のためにスニペットで更新したいだけでした – teachtyler