Javascript 使用全局数组
我想使用从请求中获得的值,但响应对象是一个局部变量(数组)。因此,我创建了这个全局数组:Javascript 使用全局数组,javascript,ajax,arrays,Javascript,Ajax,Arrays,我想使用从请求中获得的值,但响应对象是一个局部变量(数组)。因此,我创建了这个全局数组: <script type="text/javascript"> var response = []; 然后添加了这个,目的是利用我从响应对象的全局变量中得到的值: getIdOfProductBySize: function() { var selectedIndex = document.getElementById('dropdown_options').value
<script type="text/javascript">
var response = [];
然后添加了这个,目的是利用我从响应对象的全局变量中得到的值:
getIdOfProductBySize: function() {
var selectedIndex = document.getElementById('dropdown_options').value;
for (var key in response) {
if (key != selectedIndex) {
continue;
} else {
return response[key];
}
}
}
不起作用,所以我开始一步一步地(按照我添加新内容的顺序)进行,我注意到脚本在我添加的第二个内容(其中forEach
是)之后中断
可能我没有正确地声明全局变量,或者可能我无法以这种方式访问它,或者可能我没有以正确的方式为它赋值,我不知道,所以我想问是否有人可以给我一个提示,如何利用所有这些协同工作
response[element.id] = element.size;
试试这个,我相信
元素。size
返回元素的实际大小,而不是您想在数组中用作索引的大小。看起来您需要一个二维数组
在我看来,您的“键”值未定义
之前:
for (var key in response) {
尝试:
如果有道理的话?试试这个:
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];
}
var-response={key1:value1};
var i=2;
forEach(函数(条目){
控制台日志(条目);
响应[“键”+i]=entry.id;
i++;
});
var指数;
对于(索引=0;索引
没有。它是数组中索引的键,我正在另一个地方成功地使用它。假设jsonResponse看起来是这样的:array('id'=>123,'size'=>47)
。因此,我想以相同的方式将值分配给响应
全局变量。然后您想以另一种方式使用它们,请参阅我的答案。就像在数组中也使用ID作为索引一样?您是在谈论第二个函数中的forEach
循环还是for
循环?好的,听起来不错。但我需要一个带键和值的数组。这样:数组('id'=>123,'size'=>47)
。
var k=response.whatever;
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];
}