私は次の機能を持っています:
function get_stoplight_color(count, position) {
console.log(count + ', ' + position);
var colors = {
'QB' : ['#8b3a25', '#ceca63', '#68c24c', '#68c24c', '#68c24c'],
'RB' : ['#8b3a25', '#ceca63', '#ceca63', '#ceca63', '#68c24c'],
'WR' : ['#8b3a25', '#ceca63', '#ceca63', '#ceca63', '#ceca63'],
'TE' : ['#8b3a25', '#ceca63', '#68c24c', '#68c24c', '#68c24c'],
'DST' : ['#8b3a25', '#68c24c', '#68c24c', '#68c24c', '#68c24c'],
'K' : ['#8b3a25', '#68c24c', '#68c24c', '#68c24c', '#68c24c']
};
console.log(colors);
if (count <= 4) return colors.position[count];
else return '#68c24c';
}
ご覧のとおり、いくつかの vars をコンソールにログ出力しましたが、それらは正常に動作しているように見えます。ただし、実行時に次のエラーが発生します。
キャッチされていない TypeError: 未定義のプロパティ '4' を読み取ることができません
(そのときcount
= 4 です。)
繰り返しますが、オブジェクトはcolors
明らかに存在しconsole.log(colors)
ます。出力は次のとおりです。
Object {QB: Array[5], RB: Array[5], WR: Array[5], TE: Array[5], DST: Array[5]…}
したがって、 = 'QB' および= 4の場合colors.position[count]
に戻ると予想されます。#68c24c
position
count
undefined
この場合、オブジェクトがまだ返されるのはなぜですか? ありがとうございます。必要に応じて詳細をお知らせします (前もって考えたことはすべて提供しました)。