次のコードがあります。
var that = this, k,
colors = ['#468966','#FFF0A5','#FFB033B','#B64926','#8E2800'];
data = [];
that.k=0;
for (var i in answers){
data.push({
key: i,
color: colors[k%5],
values: []
});
answers[i].forEach(function(answer,index){
that.data[k].values.push({
label: 'user_'+index,
value: answer.answer
});
});
that.k++;
}
ループ内でdata[]
and colors
andにアクセスできるようにしたい。外部コンテキストをこの関数に渡すにはどうすればよいですか? それとも別の代替手段がありますか?k
for (var i in answers)
一部の情報を省略した可能性があります。これは関数内にあるため、コードは次のようになります。
var createChartData = function(answers){
var that = this, k,
colors = ['#468966','#FFF0A5','#FFB033B','#B64926','#8E2800'];
data = [];
k=0;
for (var i in answers){
data.push({
key: i,
color: colors[k%5],
values: []
});
debugger;
answers[i].forEach(function(answer,index){
that.data[k].values.push({
label: 'user_'+index,
value: answer.answer
});
});
k++;
}
return data;
}
しかし、これは無関係であるべきだと思います。for
ループ内ではk
orにアクセスできませんがcolors
、意外にも にアクセスできますthat
。私は非常に混乱しています...
わかりました。他の問題があった可能性があります。現在は機能しているため、後でもう一度チェックして、どこに問題があるかを突き止めます。