我需要创建 4 个变量,它们都带有一个随机复合数。复合数由函数创建。有没有更简单的方法来使用相同的函数而不是下面的脚本来创建 4 个变量?
var a = create_composite();
var b = create_composite();
var c = create_composite();
var d = create_composite();
我需要创建 4 个变量,它们都带有一个随机复合数。复合数由函数创建。有没有更简单的方法来使用相同的函数而不是下面的脚本来创建 4 个变量?
var a = create_composite();
var b = create_composite();
var c = create_composite();
var d = create_composite();
这有点短,但不确定它是否是你想要的......
// stub function
const create_composite = () => Math.floor(Math.random() * 10)
const [a, b, c, d] = (new Array(4)).fill(0).map(create_composite)
console.log(a, b, c, d);
另一种选择是修改create_composite
以接受您希望生成的合数数量:
const create_composites = (qty=1) => {
return (new Array(qty)).fill(0).map(() => {
// original composite number function code
});
}
然后你可以像我上面那样以类似的方式使用它:
const [a, b, c, d] = create_composites(4);
虽然我们正在就更改您的create_composite
功能提出建议,但我能想到的最佳选择是将该功能转变为生成器:
function* create_composite() {
while(true)
// yield your return value here
yield Math.floor(Math.random() * 10);
}
const [a, b, c, d, e, f, g] = create_composite();
console.log(a, b, c, d, e, f, g);
这将允许您根据需要获取尽可能多的变量
我认为这是最简单的方法。你也可以这样做:
var a = create_composite(),
b = create_composite(),
c = create_composite(),
d = create_composite();
这取决于偏好,但在 JavaScript 中没有更简单的方法:)
如果你使用的是支持 ES6 的浏览器,或者正在使用 babel 或类似的,你可以这样做:
var { a, b, c, d } = create_composite();
如果 create_composite 返回一个带有键 a、b、c、d 的对象,那么您将可以访问这些单独的变量。
否则,在较旧的浏览器中,您仍然可以让函数返回一个对象,您只需要单独调用属性,如下所示:
var compositeNumber = create_composite();
console.log(compositeNumber.a);