Javascript:使用多个循环增量枚举偏斜和旋转

时间:2015-10-02 23:59:41

标签: javascript loops

这个问题与another question有关,我认为它的答案并不能解决我的问题。我有以下内容:

var props = ['skew','rotate'], 
    axis = ['X','Y','Z'];

for (var p=0, a=0; p<2, a<3; p++, a++){
    console.log(props[p]+axis[a])
}

为什么有时这会记录undefinedX

更新:日志应写为rotateX rotateY rotateZ skewX skewY skewZ

1 个答案:

答案 0 :(得分:1)

您可以使用内部和外部循环来枚举所有组合

&#13;
&#13;
var props = ['skew','rotate']
,   axis = ['X','Y','Z']
,   result = '';

for(prop = 0; prop < props.length; prop ++) {
    for(dir = 0; dir < axis.length; dir ++) {
        result += props[prop] + axis[dir] + '<br/>';
    }
}
document.write(result);
&#13;
&#13;
&#13;

对于两个不同大小的数组使用单个循环的问题是,只要代码没有到达一个数组的末尾,两个变量都会递增。

现在可以通过检查循环并将数组中的索引加上数组中的1来修复。

然而,使用这种方法的一个更大的问题是,您实际上并没有将第一个数组中的每个值连接到第二个数组中的每个变量。您将某个位置的第一个数组中的每个值连接到同一位置的第二个数组的相应值。