函数在javascript和变量范围内的foreach内部

函数在javascript和变量范围内的foreach内部,javascript,foreach,scope,Javascript,Foreach,Scope,我需要类似的东西: "use strict" var arrayToFill = new Array(); var arrayWithData = ["a", "b", "c"]; arrayWithData.forEach(function(entry) { arrayToFill[entry] = "something"; }); 看起来就像我的NetBeans所说的,我对arrayToFill变量作用域有问题。我无法从functionentry访问它 我如何解决这个问题?

我需要类似的东西:

"use strict"

var arrayToFill = new Array();
var arrayWithData = ["a", "b", "c"];

arrayWithData.forEach(function(entry) {

     arrayToFill[entry] = "something";
});
看起来就像我的NetBeans所说的,我对arrayToFill变量作用域有问题。我无法从functionentry访问它


我如何解决这个问题?

您的范围没有问题

您只是试图为数组的a、b和c属性赋值,这是没有意义的,因为数组被设计用来保存具有数字属性名的有序数据

然后,如果将结果记录到console.log中,它将显示为空数组,因为它只显示带有数字索引的数据。这可能是导致您认为您的范围错误的原因

您可以像这样很好地访问数据:

严格使用 var arrayToFill=新数组; var arrayWithData=[a、b、c]; arrayWithData.forEachfunctionentry{ 控制台.logentry; arrayToFill[条目]=某物; };
alertarrayToFill.a;在forEach循环中,console.logarrayToFill,entry;应该会给你一些启示。确切的错误信息是什么?条目应在ArrayTo上方结束。请填写您提供的代码。不可复制。您应该使用对象而不是数组,但是.arrayToFill应该初始化为对象,对吗?@davintroon没有错误消息。NetBeans说,arrayToFill[]没有在我的foreach循环中定义。