我想使用从请求中获取的值,但响应对象是局部变量(数组)。因此我创建了这个全局数组:
<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
之后)中断了。
也许我没有正确地声明全局变量,或者我可能无法以这种方式访问它,或者我可能没有以正确的方式将值赋给它,我不知道,所以我问是否有人可以给我一个如何利用所有这些合作的提示吗?
答案 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;
如果这有意义吗?