【问题标题】:Not returning min but returning Max不返回 min 但返回 Max
【发布时间】:2019-04-10 15:17:08
【问题描述】:

我想知道我做错了什么,下面的代码没有返回数组中的最小数

var phoneNumbers = [ 
   { "id": 1, "phoneNo": "0758709939" },
   { "id": 1, "phoneNo": "0158703431" }
 ]

下面是我写的返回最小值的代码

return Array.from(phoneNumbers)
   .map((arr) => arr.phoneNo)
   .reduce((prev, curr) => prev > curr ? prev : curr, 0)

谁能帮我看看?

【问题讨论】:

  • 如何根据 phoneNo 对结果进行排序,然后选择数组的第一个元素?
  • 我认为你应该反转这个条件prev > curr ? prev : curr
  • @UmairAbid 坏主意,排序是O(N log N)O(N) 解决方案更好
  • 如果您编写了代码,那么您应该了解比较运算符 <> 以及三元运算符 (?;)。而且您还应该知道如何自己解决问题。
  • @Someprogrammerdude,我已经尝试了所有选项,但它返回的是最大值。我在这里问是因为我想知道我做错了什么。

标签: javascript max min


【解决方案1】:

你在给reduce的回调中使用了错误的条件

return Array.from(this.phoneNumbers)
   .map((arr) => arr.phoneNo)
   .reduce((prev, curr) => Math.min(prev, curr), 0)

【讨论】:

  • Math.min 会将字符串转换为数字,因此您将丢失前导零
猜你喜欢
  • 2017-08-24
  • 1970-01-01
  • 2018-11-05
  • 1970-01-01
  • 2013-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多