JavaScript Array fill()

fill() 方法通过用指定值填充所有元素来返回一个数组

示例

// defining an array 
var fruits = ['Apple', 'Banana', 'Grape'];

// filling every element of the array with 'Cherry' fruits.fill("Cherry");
console.log(fruits); // Output: // [ 'Cherry', 'Cherry', 'Cherry' ]

fill() 语法

fill() 方法的语法是

arr.fill(value, start, end)

这里,arr 是一个数组。


fill() 参数

fill() 方法可以接受 **3** 个参数

  • value - 用于填充数组的值。
  • start (可选) - 开始索引(默认为 **0**)。
  • end (可选) - 结束索引(默认为 Array.length),此索引始终不包含在内。

fill() 返回值

  • 返回修改后的数组,该数组从 startend(不包含 end)都填充了 value

注意事项

  • 如果 startend 为负数,则从后往前计算索引。
  • 由于 fill() 是一个变异方法,它会修改数组本身(而不是副本)并返回该数组。

示例 1:使用 fill() 方法

var prices = [651, 41, 4, 3, 6];

// filling every element of the array with '5' new_prices = prices.fill(5);
console.log(prices); console.log(new_prices);

输出

[ 5, 5, 5, 5, 5 ]
[ 5, 5, 5, 5, 5 ]

在上面的示例中,我们使用 fill() 方法将 prices 数组的所有元素填充为 **5**。

我们在方法中将 **5** 作为填充值传递,然后将返回值赋给 new_prices

由于该方法是变异方法,prices.fill(5) 会修改原始数组,因此 pricesnew_prices 都包含相同的值。


示例 2:使用三个参数的 fill() 方法

// array definition
var language = ["JavaScript", "Python", "C", "C++"];

// replacing element of array from index 1 to 3 by 'JavaScript' language.fill("JavaScript", 1, 3);
// printing the original array console.log(language);

输出

[ 'JavaScript', 'JavaScript', 'JavaScript', 'C++']

在这里,我们使用 fill() 方法将 'JavaScript' 填充到 language 数组中,从索引 **1** 到 **3**(不包含 **3**)。

因此,该方法仅替换 language[1]language[2] 的元素为 'JavaScript'


示例 3:使用无效索引的 fill() 方法

var rank = [8, 9, 3, 7];

// on passing negative index, counting starts from back rank.fill(15, -2);
// prints the modified 'rank' array console.log(rank); // [ 8, 9, 15, 15 ]
// passing invalid index result in no change rank.fill(15, 7, 8);
console.log(rank); // [ 8, 9, 15, 15 ]
// passing invalid indexes rank.fill(15, NaN, NaN);
console.log(rank); // [ 8, 9, 15, 15 ]

输出

[ 8, 9, 15, 15 ]
[ 8, 9, 15, 15 ]
[ 8, 9, 15, 15 ]

在上面的示例中,我们将负数索引值 **-2** 作为 start 传递给 fill() 方法。rank.fill(15,-2) 用 **15** 填充了数组的最后两个元素。

如果我们传递一个大于数组大小的索引值作为 startend

rank.fill(15, 7, 8);
rank.fill(15, NaN, NaN);

在这里,**7, 8** 和 **NaN, NaN** 是无效索引,因此方法返回数组而不进行更改。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战