繁体   English   中英

我想弄清楚为什么我的表不会通过求和函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM