【问题标题】:random and different values when using the Array function “fill” [duplicate]使用数组函数“填充”时的随机值和不同值 [重复]
【发布时间】:2017-11-25 03:39:42
【问题描述】:

const array = new Array(10);
array.fill('hi');
console.log(array);

使用Array::fill 填充整个数组或部分数组的值。

我有一个生成随机字符串的字符串生成器函数。

const getString = () => Math.random().toString(36).replace(/[^a-z]+/g, '');
console.log(getString())
console.log(getString())
console.log(getString())

我想通过每次执行字符串生成器函数来用不同的值填充数组。

这不能通过fill 中的一行来完成,但是,我找到了一种利用fill 签名的解决方法:arr.fill(value[, start = 0[, end = this.length]])

const getString = () => Math.random().toString(36).replace(/[^a-z]+/g, '');
const array = new Array(10);

for (var i=0; i < array.length;i++ ) {
  array.fill(getString(), i, i + 1);
}
console.log(array);

fill 是否支持可以在每次迭代中执行以生成不同值的回调?

如果没有,有什么替代方案?

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    我们可以通过结合mapfill 达到相同的结果:

     array.fill().map(getString)
    

    const getString = () => Math.random().toString(36).replace(/[^a-z]+/g, '');
    
    const array = new Array(10);
    console.log(array.fill().map(getString))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      • 2015-09-30
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多