例如,我有一个名为'categories'的数组,其值为['4','9']。我正在尝试将该值与先前定义的数组的名称一起使用。我之前定义了几个数组,名为row1,row2,row3等。我也使用jQuery。
尝试做这样的事情:
for (i=0; i<categories.length; i++) {
row+categories[i].push($(this).attr('id'));
console.log(row+categories[i]);
}
显然行+类别[i]不起作用,但也许会让你知道我想要做什么?在这种情况下,第一次循环时将该id值推送到数组'row4',然后第二次将'row9'推送到数组'row4'。
感谢您的帮助!!
答案 0 :(得分:4)
为什么不定义包含多个数组的单个行变量,而不是定义多个row1,row2,row3等?
var rows = [[], [], []];
var categories = ['4', '9'];
for (i = 0; i < categories.length; i++) {
rows[categories[i]].push($(this).attr('id'));
console.log(rows[categories[i]]);
}
如果在您的情况下有意义,它甚至可以是具有属性的对象:
var rows = {
row1: [],
row2: [],
row3: [],
getRow: function(index) {
return this["row" + index];
}
};
var categories = ['4', '9'];
for (i = 0; i < categories.length; i++) {
rows.getRow(categories[i]).push($(this).attr('id'));
console.log(rows.getRow(categories[i]));
}
答案 1 :(得分:0)
你可以使用eval(),即使我不喜欢它...
for (i=0; i<categories.length; i++) {
eval("row" + categories[i] + ".push($(this).attr('id'))");
console.log(eval("row" + categories[i]));
}
答案 2 :(得分:0)
你想要全局变量还是局部变量? (下面的代码使用全局变量)
var rowVar;
for (i=0; i<categories.length; i++) {
rowVar = "row"+categories[i];
window[rowVar].push($(this).attr('id'));
console.log(window[rowVar]);
}