gpt4 book ai didi

javascript - 我想使用不同的语法以便于调试。为什么不起作用?

转载 作者:行者123 更新时间:2023-11-28 17:16:13 24 4
gpt4 key购买 nike

这是一个我无法解决的问题,它来自codingGame。我看到了一个解决方案,但我尝试使用不同的语法以便更好地理解。

上下文

/** Horse Racing Duals (easy) https://www.codingame.com/training/easy/horse-racing-duals
* This puzzle shows that sometimes, the simplest solution is not performant
* enough. You will also learn to handle large arrays and gain experience
* with their processing time.
*
* STATEMENT:
* In this problem you have to find the two numbers that are closest to each
* other among a list of numbers. The list might be really large and force
* you to search for the best possible algorithmic complexity for your
* solution.
*
* STORY:
* To make a race between two horses interesting, you will have to find the
* horses with the closest strength.
**/
print(
new Array(+readline())
.fill()
.map(() => +readline())
.sort((a, b) => a > b)
.map((x, i, arr) => Math.abs(x - arr[i + 1]))
.sort((a, b) => a > b) [0]
);

为什么我不能这样做:

let tab = new Array(+readline())
tab.fill()
tab.map(() => +readline())
tab.sort((a, b) => a > b)
tab.map((x, i, arr) => Math.abs(x - arr[i + 1]))
tab

最佳答案

Why can't I do this:

因为某些 map 方法返回包含更改的新数组,而不是就地进行更改。

在您的示例中,只有 sort 就地改变数组,因此您的代码实际上相当于:

let tab = new Array(+readline())
tab.sort((a, b) => a > b)
<小时/>

请注意,sort 回调应该返回正数、负数或 0It should not return a Boolean .

关于javascript - 我想使用不同的语法以便于调试。为什么不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53419914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com