如何访问此数组的数据对象中的整数?
最终,我想编写一个for循环来输入和计算vpos(顶点)。
var arrays = {
vpos : { numComponents: 3, data:
[
-.5,-1,-.5, .5,-.5,-.5, .5, .5,-.5,
-.5,-.5,-.5, .5, .5,-.5, -.5, .5,-.5,
-.5,-.5, .5, .5,-.5, .5, .5, .5, .5
] },
vnormal : {numComponents:3, data: [
0,0,-1, 0,0,-1, 0,0,-1,
0,0,-1, 0,0,-1, 0,0,-1,
0,0,1, 0,0,1, 0,0,1,
]}
};
答案 0 :(得分:1)
您可以使用reduce轻松计算总数:
let total = arrays.vpos.data.reduce((sum, val) => sum + val, 0);
这是一个演示:
var arrays = {
vpos: {
numComponents: 3,
data: [-.5, -1, -.5, .5, -.5, -.5, .5, .5, -.5, -.5, -.5, -.5, .5, .5, -.5, -.5, .5, -.5, -.5, -.5, .5, .5, -.5, .5, .5, .5, .5]
}
};
let total = arrays.vpos.data.reduce((sum, val) => sum + val, 0);
console.log(total);

答案 1 :(得分:0)
只需使用[index]表示法。索引从零开始(第一项的索引为0,第二项为1,依此类推)。
arrays.vpos.data[0] //gives -0.5
arrays.vpos.data[1] //gives -1
arrays.vpos.data[2] //gives -0.5
答案 2 :(得分:0)
vpos
:
var pushedArray;
for(var x of arrays.vpos.data) {
pushedArray.push(x);
}
pushedArray
将包含data
数组中的值。
添加它们:
var sum;
for(var x of pushedArray) {
sum += x;
}
答案 3 :(得分:-1)
是的,您可以在d中获取数据数组,然后创建for循环
var v = {
vpos : { numComponents: 3, data:
[
-.5,-1,-.5, .5,-.5,-.5, .5, .5,-.5,
-.5,-.5,-.5, .5, .5,-.5, -.5, .5,-.5,
-.5,-.5, .5, .5,-.5, .5, .5, .5, .5
] },
vnormal : {numComponents:3, data: [
0,0,-1, 0,0,-1, 0,0,-1,
0,0,-1, 0,0,-1, 0,0,-1,
0,0,1, 0,0,1, 0,0,1,
]}
};
var d = v.vpos.data;
console.log(d);