【问题标题】:How to use filter function on string如何在字符串上使用过滤器功能
【发布时间】:2023-03-21 05:59:01
【问题描述】:

我有一个如下所示的字符串:(5 Sonuç)

如何使用过滤功能而不是任何与字符串相关的功能提取数字?

过滤器函数适用于数组,但我如何使它适用于字符串 我不能使用替换或匹配功能。

【问题讨论】:

  • 您不能在字符串上使用filter(),因为它是Array.prototype 函数。
  • @fedesc 当然你可以在字符串上调用过滤器(见下面我的回答)
  • @MehdiBelbal 您正在将字符串转换为数组以便filter 工作。这就像 split() 但这是获得所需结果的好方法
  • @fedesc 即使在 google v8 引擎中,字符串实际上也是一个字符数组,因此可以将其向下转换为其原始形式,而无需将其拆分为实际的显式字符数组,这需要更多的工作引擎

标签: javascript node.js


【解决方案1】:

使用 split() 函数返回一个数组,然后使用 filter() 函数取出数组中的非数字。 然后,您可以使用字符串相关函数转换回字符串(如果需要)

let myString = "5 Sonuç"

let myNum = myString.split("").filter(e => !isNaN(e));
console.log(myNum)

【讨论】:

    【解决方案2】:

    您可以通过调用 Array.prototype.filter.call 将您的字符串作为“this”参数并将过滤器函数作为第二个参数来对字符串使用过滤器。

    示例:

    var str = "5 dfkdf9 eofh"
    let res = Array.prototype.filter.call(str, n=>!isNaN(parseInt(n)))
    
    console.log(res)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      • 2020-11-20
      相关资源
      最近更新 更多