我通过 Ajax 调用从数据库获取一组逗号分隔的字符串,如下所示
b-819-0,b-819-1,b-819-2
我尝试使用将其加载到数组中
let imgNames = [];
imgNames.push(obj[i]['indicators'].split(','));
现在记录数组看起来没问题:
但是当我尝试访问循环中的元素时,例如
for (let i = 0; i <2; i++) {
inx += '<li class="list-inline-item"> <div class="product" data-fname="'+imgNames[i]+'"></div></li>';
}
它仅将数组的所有元素转储到第一个 fname
中!并向其他添加 undefined
。正如您所看到的,imgNames
数组中已经有 3 个元素!
为什么会发生这种情况以及如何解决这个问题?
最佳答案
imgNames 是一个只有一个元素的数组,即逗号分隔数组。
发生这种情况是因为您将 obj[i]['indicators'].split(',')
插入空的 imgNames 数组中。
您的代码应该是:
let tuples = obj[i]['indicators'].split(',')
tuples.forEach(imgNames.push)
假设imgNames不为空
如果没有,则只需执行 let imgNames = obj[i]['indicators'].split(',')
关于javascript - 访问 Ajax 调用中加载的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56874957/