我想分享一个小技巧,可以将变量传递到JS Array.forEach()方法的作用域中。我遇到了这样的情况:我需要使用forEach循环来构建数据集。但是同时我也需要访问当前作用域中的变量(我需要能够在循环中引用this
)。
我所处的情况如下:
var dataset = {
data: [],
backgroundColor:[],
};
items.forEach(function (item) {
dataset.data.push(item.age);
if (item.age < 2) {
dataset.bgColor.push(this.green);
} else if (item.age < 5) {
dataset.bgColor.push(this.yellow);
} else {
dataset.bgColor.push(this.red);
}
}, this);
this.refreshGraph(dataset);
循环内部无法访问数据集。那么我们在迭代时如何访问它?
我在stack overflow上没有看到这个解决方案,也没有适合的问题。
答案如下: