【问题标题】:Range numbers in array [closed]数组中的范围数字[关闭]
【发布时间】:2021-07-05 10:59:03
【问题描述】:

我写了一个函数,可以根据给定的数字范围创建一个数组,但它不起作用。

function makeListFromRange(start, end) {
  return Array(end - start + 1).fill().map((_, idx) => start + idx)
}

const result = makeListFromRange([2, 7]); // should be [2, 3, 4, 5, 6, 7]

console.log(result);

【问题讨论】:

  • 您在调用函数时传递了一个数组,而函数需要两个参数。请改用makeListFromRange(2, 7)
  • 我需要传递一个带有数字的数组
  • makeListFromRange(...[2, 7]) 可以。
  • 所以在函数中解构它-makeListFromRange([start, end])

标签: javascript arrays function numbers arguments


【解决方案1】:

如果输入需要是数组,使用数组解构得到startend

function makeListFromRange([start, end]) {
  return Array(end - start + 1).fill().map((_, idx) => start + idx)
}

const result = makeListFromRange([2, 7]); // should be [2, 3, 4, 5, 6, 7]

console.log(result);

更简单的解决方案是提供 startend 作为参数:

function makeListFromRange(start, end) {
  return Array(end - start + 1).fill().map((_, idx) => start + idx)
}

const result = makeListFromRange(2, 7); // should be [2, 3, 4, 5, 6, 7]

console.log(result);

【讨论】:

  • 我太不体贴了,谢谢
  • 不客气。我们所有人都至少发生过一次愚蠢的错误:)
【解决方案2】:

您的函数需要两个参数,每个参数都应该是一个数字。要传入长度为 2 的数组,您需要使用扩展运算符 (...)。

function makeListFromRange(start, end) {
  return Array(end - start + 1).fill().map((_, idx) => start + idx)
}

const result = makeListFromRange(...[2, 7]); // should be [2, 3, 4, 5, 6, 7]

console.log(result);

【讨论】:

    猜你喜欢
    • 2013-09-23
    • 2019-07-27
    • 2013-08-31
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多