我必须计算一些变量,并希望减少代码。这是我当前的代码:
z = a+b+c+d+e+f; // a-f are integer numbers
a = Math.round(a/z*100)+20;
b = Math.round(b/z*100)+20;
c = Math.round(c/z*100)+20;
d = Math.round(d/z*100)+20;
e = Math.round(e/z*100)+20;
f = Math.round(f/z*100)+20;
有没有一种方法可以减少代码
[a,b,c,d,e,f].forEach(function(i) { Math.round(i/z*100)+20; } );
答案 0 :(得分:3)
您可以将结果映射并解构为变量:
Array#map
用于获得一个新数组,该数组具有每个项目的值,
destructuring assignment,用于将结果从结果中获取到变量中,
Array#reduce
稍微减少一点,即可添加数组中的所有值。
var a = 1,
b = 2,
c = 3,
d = 4,
e = 5,
f = 6,
z = [a, b, c, d, e, f].reduce((a, b) => a + b);
[a, b, c, d, e, f] = [a, b, c, d, e, f].map(i => Math.round(i / z * 100) + 20);
console.log(a);
console.log(b);
console.log(c);
console.log(d);
console.log(e);
答案 1 :(得分:1)
您可以使用map
@import '~bootstrap/scss/bootstrap.scss';
@include media-breakpoint-up(md) {
// 3 cards on tablet
@include make-col(4);
}
// ... other component css rules
}
答案 2 :(得分:0)
改为使用对象或数组,然后可以使用数组方法来变换或重新分配所有所需的属性。例如:
const initialArr = [a, b, c, d, e, f];
const transformedArr = initialArr.map(num => Math.round(num/z*100)+20);
transformedArr[0]
将对应于a
,transformedArr[1]
将对应于b
,依此类推。 (理想情况下,您开始将所有这些变量从头开始放在数组中。)