2016-04-22 18 views
0

以下のコードでは、priorityData配列は[80] = "High"形式です。つまり、80はHighの整数値です。文字列が "High"に等しいときはいつでも整数値80を抽出して使用したい。私はどうしたらいいですか?それぞれの文字列の戻り値の配列の値

if (service.priorityData[i] === priorityString) { 
    logger.info("Priority string", service.priorityData[i].values()); 
    return service.priorityData[i].values(); 
} else { 
    return null; 
} 

service.priorityData = {0 : "None", 20: "Low, 80: "High"} 

ただし、このコードを使用すると何も返されません。あなたがオブジェクトのプロパティにアクセスしようとするように思え、私はあなたの優先順位データのキーを切り替えるでしょう、そしてあなただけのキーの値を返すことができ

+2

あなたは理にかなっていません。 '[80] =" High "'は文字列か、配列の80番目の要素が '' High ''に等しいと言っていますか? –

+0

質問が不明な場合は申し訳ありません。私は優先度データが[80] = "高"の形式であることを意味します。 80は文字列 "High"の整数値です。文字列「高」の代わりに80を使用したい – user2128

+2

いいえ、80はどこに住んでいますか?それは配列のインデックスですか? 'service.priorityData [i]'の例を教えてください。 –

答えて

0

オブジェクトをループし、必要な値と一致したらキーを返すだけです。

for (var key in service.priorityData) { 
    if (service.priorityData[key] == priorityString) { 
     return key; 
    } 
    return null; // not found 
} 
1

、またはnull

service.priorityData = { 
    "None": 0, 
    "Low": 20, 
    "High": 80 
} 

return service.priorityData[priorityString] || null 
+0

私はデータを取得するために残りのAPIを使用しています。だから私はデータフォーマットを変更することはできません – user2128

+0

あなたはまだAPI呼び出しからデータを再フォーマットすることができます –

0

。この場合、次の慣例を介してアクセスできます。

service.priorityData['80'] 
+1

2番目のオプションは 'Uncaught SyntaxError:Unexpected number'をスローします。最初のオプションだけがアクセスしてオブジェクトに作用しますが、私はそれがオペレータが求めているものであるとは確信していません –

+0

あなたの権利、私の間違い。 –

関連する問題