Javascript 如何';加入';并在jQuery中循环2个关联数组?
我有15个部分(称为基本部分),每个部分都有自己的一组字母按钮 我所要做的就是将字母数字与它们所在的基本/部分相关联。因此,例如,如果用户单击base 7下的字母“B”,我想返回用户已单击baseJavascript 如何';加入';并在jQuery中循环2个关联数组?,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有15个部分(称为基本部分),每个部分都有自己的一组字母按钮 我所要做的就是将字母数字与它们所在的基本/部分相关联。因此,例如,如果用户单击base 7下的字母“B”,我想返回用户已单击base7下的字母B 我将所有需要的数据放入2个数组,并动态生成字母表。一切正常,但我无法将字母与底座联系起来 您可以查看下面的演示,打开控制台日志并尝试单击任何按钮 这是到目前为止我的代码 正如您将看到的,我试图从第二个字母表循环中的第一个forEach循环返回base[I].id console.log(a
7下的字母B
我将所有需要的数据放入2个数组,并动态生成字母表。一切正常,但我无法将字母与底座联系起来
您可以查看下面的演示,打开控制台日志并尝试单击任何按钮
这是到目前为止我的代码
正如您将看到的,我试图从第二个字母表循环中的第一个forEach
循环返回base[I].id
console.log(alphabet[i].id + ' has been clicked on ' + base[i].id);
这将返回以下结果
A has been clicked on base1
B has been clicked on base2
C has been clicked on base3
但他们都应该说是在base7上,因为按钮就在那里
更重要的是,下面的代码应该绑定这两个数组,因为它要求应用纹理的base
name/number
setMaterialUIDPending (base[i].name, AlbedoPBR, alphabet[i].id+"-letter");
我希望我说得有道理
let base=[
{'id':'base1','btn':'b1 include','name:'baseone'},
{'id':'base2','btn':'b2 include','name:“basetwo”},
{'id':'base3','btn':'b3 include','name:'basethree'},
{'id':'base4','btn':'b4 include','name:'basefour'},
{'id':'base5','btn':'b5 include','name:'basefive'},
{'id':'base6','btn':'b6 include','name:'basesix'},
{'id':'base7','btn':'b7 include','name:'baseseven'},
{'id':'base8','btn':'b8 include','name:'baseeight'},
{'id':'base9','btn':'b9 include','name:'basenine'},
{'id':'base10','btn':'b10 include','name:'baseten'},
{'id':'base11','btn':'b11 include','name:'base11'},
{'id':'base12','btn':'b12 include','name:'base12'},
{'id':'base13','btn':'b13 include','name:'base13'},
{'id':'base14','btn':'b14 include','name:'base14'},
{'id':'base15','btn':'b15 include','name:'base15'},
];
让字母表=[
{“id”:“A”,“url”:”https://example.com/A.png" },
{“id”:“B”,“url”:”https://example.com/B.png" },
{“id”:“C”,“url”:”https://example.com/C.png" }
];
让预览=$('.preview');
$。每个(基础、功能(i、v){
设$collapse=$(“”,{'class':'collapse',id:base[i].id});
设$btn=$('
您在两个$中使用相同的迭代变量i
和v
。每个循环。因此,当您在字母表上循环时,base[i]
使用字母表中的索引,而不是base
中的索引。您应该使用不同的变量
正如我在评论中提到的,您不需要为数组编制索引,这就是使用$的要点。每个
——回调参数是数组的当前元素。因此,只需在每个数组中使用比v
更独特的名称即可
let base=[
{'id':'base1','btn':'b1 include','name:'baseone'},
{'id':'base2','btn':'b2 include','name:“basetwo”},
{'id':'base3','btn':'b3 include','name:'basethree'},
{'id':'base4','btn':'b4 include','name:'basefour'},
{'id':'base5','btn':'b5 include','name:'basefive'},
{'id':'base6','btn':'b6 include','name:'basesix'},
{'id':'base7','btn':'b7 include','name:'baseseven'},
{'id':'base8','btn':'b8 include','name:'baseeight'},
{'id':'base9','btn':'b9 include','name:'basenine'},
{'id':'base10','btn':'b10 include','name:'baseten'},
{'id':'base11','btn':'b11 include','name:'base11'},
{'id':'base12','btn':'b12 include','name:'base12'},
{'id':'base13','btn':'b13 include','name:'base13'},
{'id':'base14','btn':'b14 include','name:'base14'},
{'id':'base15','btn':'b15 include','name:'base15'},
];
让字母表=[
{“id”:“A”,“url”:”https://example.com/A.png" },
{“id”:“B”,“url”:”https://example.com/B.png" },
{“id”:“C”,“url”:”https://example.com/C.png" }
];
让预览=$('.preview');
$。每个(基,函数(i,cur_基){
让$collapse=$(“”,{'class':'collapse',id:cur_base.id});
设$btn=$('
无需在$中使用base[i]
和alphabet[i]
。每个循环。这就是那些循环中的v
所在。在单击处理程序中,您可以使用this.id
获取被单击对象的id,然后使用类似于的内容。最近('li')).id
以获取父对象的id。我无法真正说出最终标记的结构,因此,它可能不是li。谢谢@Barmar!我非常感谢。