我需要将数组中的每个元素替换为该数组右侧元素集合中的最大元素。我有以下代码解决方案:
let arr1 = [5,0,5,7,9,4,8];
var temp = [];
for (var i = 1; i < arr1.length + 1; i++)
{
if (i !== arr1.length)
{
temp = [...arr1].slice(i);
arr1[i-1] = Math.max(...temp);
}
else
{
arr1[i-1] = arr1[arr1.length - 1];
}
}
console.log(arr1);
有没有其他更好的解决方案来解决这个问题?您可以在下一个示例中看到期望的输出:
Input : [5,0,5,7,9,4,8]
Output: [9,9,9,9,8,8,8]
9
的值是8
,而对于8
的值是8
? - Nina Scholz9
,右侧的元素集合是[4, 8]
,因此被它们的最大值8
所替换。而对于8
(最后一个元素),没有右侧的元素,因此不会被替换。我相信这就是其背后的逻辑,至少这是我理解的。 - Shidersz