【问题标题】:Node js .replace() is not a functionNode js .replace() 不是函数
【发布时间】:2018-02-17 08:17:17
【问题描述】:

当我在节点 js 中运行此代码时,我得到 TypeError: filter_list.replace is not a function,我也尝试过使用 toString 但这似乎没有帮助,有人可以帮忙吗?

var filter_list =["abcd","efgh"];
filter_list.join();
return filter_list.replace(/,/g, ' AND filter:');

【问题讨论】:

    标签: javascript arrays node.js string replace


    【解决方案1】:

    var filter_list = [ "abcd", "efgh" ] 表示filter_listArrayreplace 属性函数只适用于String

    您的Array.join() 调用不会将现有数组Array 实例转换(变异)为String - 而是返回一个包含连接内容的新字符串。

    你会想要这个:

    var filter_list = ["abcd","efgh"];
    var filter_list_as_string = filter_list.join();
    return filter_list_as_string.replace(/,/g, 'AND filter:');
    

    或者更简洁:

    return ["abcd","efgh"].join().replace(/,/g, 'AND filter:');
    

    我建议您使用 TypeScript 而不是 JavaScript 为 Node 编程 - 因为它会为您捕捉这些打字问题。

    【讨论】:

    • 戴,你不需要替换
    【解决方案2】:

    arr.join返回一个字符串,它不会改变数组本身。

    var filter_list =["abcd","efgh"];
    var str = filter_list.join();
    return str.replace(/,/g, ' AND filter:');
    

    【讨论】:

      【解决方案3】:

      因为join 不会就地更改变量,而是返回另一个修改后的变量,所以您的代码应该是:

      var filter_list =["abcd","efgh"];
      filter_list = filter_list.join(); // assign the joined array back to the variable
      console.log(filter_list.replace(/,/g, ' AND filter:'));

      【讨论】:

        【解决方案4】:

        .join() 不会改变原始对象。正确的代码应该是:

        var filter_list =["abcd","efgh"];
        var joined_list = filter_list.join();
        return joined_list.replace(/,/g, ' AND filter:');
        

        【讨论】:

          【解决方案5】:

          您也可以使用toString()

          var filter_list =["abcd","efgh"];
          filter_list = filter_list.toString().replace(/,/g, ' AND filter:');
          console.log(filter_list)

          【讨论】:

            【解决方案6】:

            使用带有参数的 Array.join。

            var filter_list =["abcd","efgh"];
            console.log(filter_list.join(' AND filter:'));

            【讨论】:

              猜你喜欢
              • 2022-01-25
              • 1970-01-01
              • 2018-07-03
              • 2020-04-05
              • 2021-01-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-07-14
              相关资源
              最近更新 更多