[英]Im trying to figure out why my table wont run through the summation function
我试图通过求和函数放置一个表,但该函数不会将任何值视为数字
我已经尝试改变表格的设置方式和价值观,但我还没有完成目标
class Vector2{
constructor(x, y){
this.x = x;
this.y = y;
this.X = x;
this.Y = y;
}
}
function Sum(a, start, end){
let s = 0;
for(i = start; i <= end; i++){
s += a[i];
}
return s;
}
const v1 = new Vector2(1, 2);
const v2 = new Vector2(-1, 1);
const v3 = new Vector2(-1, -1);
const v4 = new Vector2(1, -1);
var arrX = [v1, v2, v3, v4];
//var sx = Sum(arrX, 0, 3);
//var sy = Sum(arrY, 0, 3);
//var X = (1/arrX.length)*Sum(arrX, 0, 3);
//var Y = (1/arrY.length)*Sum(arrY, 0, 3);
//console.log(X, Y);
function init(){
var x = [];
var y = [];
var cx = 0;
var cy = 0;
for(i = 0; i < arrX.length; i++){
x[i] = arrX[i].x;
console.log(Sum(x, 0, 3));
}
}
init();
在此块中,您每次向其添加项目时都要对数组求和。
for(i = 0; i < arrX.length; i++){
x[i] = arrX[i].x;
console.log(Sum(x, 0, 3));
}
你应该在数组填充后对数组求和。
for(i = 0; i < arrX.length; i++){
x[i] = arrX[i].x;
}
console.log(Sum(x, 0, 3));
如果要对数组中对象的各个属性(如'x'
)求和,则应将该属性作为求和函数的参数。 以下作品:
const sumAttribute = (my_array,att) => my_array.reduce((a,c) => a+c[att],0);
该属性需要作为字符串传递。 例如:
class Vector2{ constructor(x, y){ this.x = x; this.y = y; this.X = x; this.Y = y; } } const sumAttribute = (my_array,att) => my_array.reduce((a,c) => a+c[att],0); const v1 = new Vector2(1, 2); const v2 = new Vector2(-1, 1); const v3 = new Vector2(-1, -1); const v4 = new Vector2(1, -1); var arr = [v1, v2, v3, v4]; console.log(sumAttribute(arr,'x')); console.log(sumAttribute(arr,'y'));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.