[Easy] 手写 fill
2024年3月8日
💎 加入 E+ 成長計畫 與超過 500+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源
题目描述
实作 fill
函式,此函式接收四个参数:
- 一个阵列
- 要替换的
value
start
索引end
索引
该函式会从 start
到 end
索引 (包含 start
但不包含 end
) 来把阵列的元素换成 value
。如果未提供 start
索引,则应预设为 0。如果未提供 end
索引,则剩余元素会被替换为 value
。
fill([1, 2, 3], "*");
// => ['*', '*', '*']
fill([1, 2], "*", 2, 3);
// => [1, 2]
fill([1, 2, 3, 4, 5], "*", 1, -1);
// => [1, '*', '*', '*', 5]
本题解答
以下是本题的解答,详细解题思路可以在 E+ 成长计划看到。如果想练习更多题目,推荐可以到 GreatFrontEnd 上练习
解法
function fill(array, value, start = 0, end = array.length) {
if (start < 0) {
start = array.length + start;
}
if (end < 0) {
end = array.length + end;
}
if (end > array.length) {
end = array.length;
}
for (let i = start; i < end; i++) {
array[i] = value;
}
return array;
}