从两个数组之间的差异获取百分比值javascript

时间:2020-03-27 12:21:54

标签: javascript arrays

我有2个数组:

var a = [120, 148, 50]
var b = [90, 100, 150] 

我如何获得a和b之间的相差百分比:

var c = [ -28.57, -38.71 , 100 ]

即:120与90之差等于-28.57

感谢您的帮助

4 个答案:

答案 0 :(得分:2)

您要计算百分比增长。

%增加= [(新值-原始值)/原始值] * 100

const increaseValue = (n, m) => (m - n) / ((m + n) / 2) * 100

let a = [120, 148, 50]
let b = [90, 100, 150] 
let c = a.map((n, i) => increaseValue(n, b[i]))

console.log(c); // [ -28.57%, -38.71%, 100% ]


如果要计算PEPEGA提到的百分比差异,只需更改公式即可。

%差异= [(新值-原始值)/((新值+原始值)/ 2)] * 100

axes = temp3.plot(kind='barh',subplots=True,grid=True,figsize=(10,7))

axes[0].get_children()[0].set_color('r')

答案 1 :(得分:1)

您可以简单地循环并在那里计算差异

const a = [120, 148, 50];
const b = [90, 100, 150];

const diffPercent = [];

for (let i = 0; i<a.length; i++) {
    diffPercent.push(((b[i] - a[i]) / ((b[i] + a[i]) / 2)) * 100)
}

console.log(diffPercent);

答案 2 :(得分:1)

您可以使用100 * ((B-A) / ((B+A)/2))来找到两个值的百分比差异

var a = [120, 148, 50]
var b = [90, 100, 150] 

var res = a.map((x, i) => 100 * ((b[i] - x) / ((b[i] + x)/2 )))

console.log(res);

答案 3 :(得分:-1)

希望这会有所帮助

我创建了识别百分比差异的函数,它可以是正数或负数

为了获得绝对值,我添加了Math.abs,因此diff始终为正整数

<script type="text/javascript">
function perDifference(a, b) {
    let percent;
    if(b !== 0) {
        if(a !== 0) {
            percent = (b - a) / a * 100;
        } else {
            percent = b * 100;
        }
    } else {
        percent = - a * 100;            
    }       
    return (percent);
    }
var a = [120, 148, 50]
var b = [90, 100, 150] 
var c = [];
for(i=0; i<a.length; i++) {
    c.push(Math.abs(perDifference(a[i],b[i])));

}
console.log(c)

    </script>