【问题标题】:How to empty an array using ES6 Array.fill()如何使用 ES6 Array.fill() 清空数组
【发布时间】:2015-08-31 10:42:00
【问题描述】:

假设我有一个像下面这样的变量

var arr = [undefined];

如何使用 ES6 使arr 等于[] Array.fill()

编辑: 我正在做一个 katas 并得到一个像

这样的测试用例
it('fill only changes content, adds no new elements', function() { 
   const arr = [undefined].fill(); 
   assert.deepEqual(arr, []); 
});

不知如何制作。我可以删除未定义的。但除此之外还有什么好方法吗?只是好奇

【问题讨论】:

  • 为什么要用fill清空呢?此外,fill 不能缩小数组
  • 你到底想要达到什么,你可能会找到更好的方法来实现它?
  • 我知道,但我正在做一个 katas 并得到一个像 it('fill only changes content, adds no new elements', function() { const arr = [undefined].fill(); assert.deepEqual(arr, []); }); 这样的测试用例。困惑如何制作。我可以删除undefined。但除此之外还有什么好方法吗?只是好奇。
  • @nmrony 您能否编辑您的问题并包含代码并澄清您的问题?
  • undefined去掉就没有.fill()可以修改的内容了:const arr = [].fill(0);

标签: javascript arrays ecmascript-6


【解决方案1】:

如何使用 ES6 使 [undefined] 等于 [] Array.fill()

你不能,因为fill 不会改变数组的长度。

看起来像they really want you to remove the undefined,或者使用其他类似arr.splice(0, 1);的东西。

【讨论】:

  • 接受此答案以提及 Github 链接
【解决方案2】:

你只能用未定义的值填充数组

[1,2,3].fill(undefined);

但该数组始终具有属性 0、1 和 2,但其值也未定义。

所以你不能使用填充删除属性

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-05
    • 2016-05-29
    • 2011-04-04
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 2010-11-16
    相关资源
    最近更新 更多