使用全局数组

时间:2013-12-03 14:28:04

标签: javascript ajax arrays

我想使用从请求中获取的值,但响应对象是局部变量(数组)。因此我创建了这个全局数组:

<script type="text/javascript">
    var response = [];
如你所见,正好在脚本开头标记下,所以它是全局的。然后在我得到响应的函数中我添加了这个:

jsonResponse.forEach(function(element){
    response[element.size] = element.id;
});

然后添加了这个,目的是利用我在响应对象的全局变量中得到的值:

getIdOfProductBySize: function() {
        var selectedIndex = document.getElementById('dropdown_options').value;
        for (var key in response) {
            if (key != selectedIndex) { 
                continue; 
            } else { 
                return response[key]; 
            }
        }   
    }

不起作用,所以我开始一步一步(按照我添加新内容的顺序),我注意到脚本在我添加的第二件事(forEach之后)中断了。

也许我没有正确地声明全局变量,或者我可能无法以这种方式访问​​它,或者我可能没有以正确的方式将值赋给它,我不知道,所以我问是否有人可以给我一个如何利用所有这些合作的提示吗?

3 个答案:

答案 0 :(得分:1)

试试这个:

var response = {key1: value1};

var i = 2;
jsonResponse.forEach(function(entry) {
   console.log(entry);
   response["key"+i] = entry.id;
   i++;
});


var index;
for (index = 0; index < response.length; ++index)
{
    console.log(response[index]);
    if(response["key"+index] !== selectedIndex)
      continue;
    else
      return response["key"+index]; 
}

答案 1 :(得分:0)

response[element.id] = element.size;

试试这个,我相信element.size会返回一个元素的实际大小,而不是你想在数组中用作索引的那个。

答案 2 :(得分:0)

看起来你需要一个二维数组。

在我看来,你的“关键”值是未定义的。

之前:

for (var key in response) {

尝试:

var k=response.whatever;

如果这有意义吗?