以下.forEach语句有什么作用?

时间:2014-06-22 19:33:32

标签: javascript three.js

下面两个forEach语句有什么作用? 'col'是数组的内置属性吗?

var width = data.length, height = data[0].length;
    data.forEach(function(col){
    col.forEach(function(val){
        geometry.vertices.push(new THREE.Vector3(val.x,val.y,val.z))
        colors.push(getColor(2.5,0,val.z));
    });
    });

如果需要某些早期代码:

var data = new Array();
    for(var x=BIGIN;x<END;x++){
    var row = [];
    for(var y=BIGIN;y<END;y++){
        z = 2.5*(Math.cos(Math.sqrt(x*x+y*y))+1);
        row.push({x: x, y: y, z: z});
    }
    data.push(row);
    }

1 个答案:

答案 0 :(得分:1)

Array.forEach遍历数组,就像for循环一样。

array.forEach(function( indice ) {});

data是一个数组数组col是来自第一个forEach的传递参数,因此第二个forEach迭代数组内部data

在代码中很明显也会创建data

var data = []; // data is an array
...
var row = [];  // row is an array
for(var ...){
    // do stuff
}
data.push(row); // put one array inside the other

然后重复

data.forEach(function(col){ // <- col is passed as the argument
    col.forEach(function(val){
        // do stuff
    });
});