Javascript 访问Ajax调用中加载的数组元素
我通过一个Ajax调用从数据库中得到一组逗号分隔的字符串,如下所示Javascript 访问Ajax调用中加载的数组元素,javascript,jquery,Javascript,Jquery,我通过一个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"> &
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>';
}
for(设i=0;iimgNames是一个只有一个元素的数组,即逗号分隔数组
发生这种情况是因为您正在将obj[i]['indicators'].split(',')
推入空imgNames数组
您的代码应该是:
let tuples = obj[i]['indicators'].split(',')
tuples.forEach(imgNames.push)
假设imgNames不是空的
如果没有,那么只需执行让imgNames=obj[i]['indicators'].split(',')
imgNames是一个只有一个元素的数组,即逗号分隔数组
发生这种情况是因为您正在将obj[i]['indicators'].split(',')
推入空imgNames数组
您的代码应该是:
let tuples = obj[i]['indicators'].split(',')
tuples.forEach(imgNames.push)
假设imgNames不是空的
如果没有,那么只需执行让imgNames=obj[i]['indicators'].split(',')
您正在第一个元素中推送一个数组
使用concat
而不是push
您正在第一个元素中推进一个数组
使用concat
而不是push
您可以使用将每个项添加到数组中,这样就不会有数组数组,而是字符串数组
let imagNames = ['img-1', 'img-2']
imgNames.push(...obj[i]['indicators'].split(','))
将导致以下结果:
imageNames = ['img-1', 'img-2', 'b-819-0', 'b-819-1', 'b-819-2']
而不是导致:
imageNames = [
'img-1', 'img-2',
['b-819-0', 'b-819-1', 'b-819-2']
]
您可以使用将每个项添加到数组中,这样就不会有数组数组,而是字符串数组
let imagNames = ['img-1', 'img-2']
imgNames.push(...obj[i]['indicators'].split(','))
将导致以下结果:
imageNames = ['img-1', 'img-2', 'b-819-0', 'b-819-1', 'b-819-2']
而不是导致:
imageNames = [
'img-1', 'img-2',
['b-819-0', 'b-819-1', 'b-819-2']
]
我想你在找:imgNames.push(…obj[I]['indicators'].split(',);
我想你在找:imgNames.push(…obj[I]['indicators'].split(',);
你错过了作业,回到imageNames=imageNames.concat(…)
您缺少分配,请返回到imageNames=imageNames.concat(…)