下面两个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);
}
答案 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
});
});