我有2个数组:
var a = [120, 148, 50]
var b = [90, 100, 150]
我如何获得a和b之间的相差百分比:
var c = [ -28.57, -38.71 , 100 ]
即:120与90之差等于-28.57
感谢您的帮助
答案 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>