【问题标题】:how to take a number and returns an array of strings javascript如何获取一个数字并返回一个字符串数组javascript
【发布时间】:2021-01-03 14:29:37
【问题描述】:

运动: 创建一个函数,该函数接受一个数字并返回一个字符串数组,其中包含在每个数字处截断的数字。 例子: 420 应该返回 ["4", "42", "420"]; 2017 应该返回 ["2", "20", "201", "2017"]

这是我的代码,我怎样才能减少它的声明性?没有推动就找不到解决方案。 是的,我花了很多时间尝试以声明方式解决它。谢谢。

 function createArrayOfTiers(num) {
        arrT= num.toString().split("")
      let z= []
      const result = arrT.reduce((acc, curr)=>{
      acc= acc+curr
      z.push(acc)
      return acc

      },"")
          return z;
      }

PS:输入保证是[0, 1000000]范围内的整数

【问题讨论】:

  • 您能解释一下声明性是什么意思吗?
  • 如果您使用 JavaScript,您必须了解声明式和命令式编程。如果没有,请检查函数式编程以获取更多知识。
  • 我经常使用 Javascript。但是,我从未遇到过这些术语。我将对这个主题进行一些研究,因为它看起来像是一个有趣的话题。谢谢你的信息。

标签: javascript arrays string numbers push


【解决方案1】:

您可以通过使用保留前面字符的闭包来获取一个字符串并从中返回一个数组。

Array.fromiterables 一起使用,字符串和数组只有一个字符作为值。

以下映射采用空字符串的闭包。这个闭包返回一个映射函数。 v 是数组的一个元素,类似于标准的 Array#map 回调。

Array.from(
    number.toString(),          // take iterables
    (s => v => s += v)('')      // map value of array with the previous elements
)

const getParts = number => Array.from(number.toString(), (s => v => s += v)(''));

console.log(getParts(2017));

【讨论】:

  • 你能解释一下吗?你在用柯里化吗?我不明白 v 来自哪里。非常感谢@ninaScholz
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-17
  • 1970-01-01
  • 2012-08-21
  • 1970-01-01
  • 2011-01-18
  • 2022-01-20
  • 2018-10-31
相关资源
最近更新 更多