【问题标题】:Double question javascript functions with arrays带有数组的双重问题javascript函数
【发布时间】:2021-10-17 00:21:57
【问题描述】:

这是一个双重问题,因为我只能每 90 分钟发布一次。 首先,我必须编写一个替换字符串字符的函数。

//======================  EXAMPLE  ========================
var str = "I,Really,Like,Pizza";
characterRemover(str, ",");
"I Really Like Pizza"; // <======  EXPECTED OUTPUT
//=========================================================

并在所选字符的位置放置一个空格。我试过了,但没有用。

function chracterRemover(str, cha){
    var replaced = str.split('cha').join(' ');
    return replaced;
}

它只返回相同的字符串。

第二件事是我必须编写一个函数,如果引入的数据类型是 arrat,则返回 true,其余的则返回 false。

//======================  EXAMPLE  ========================
var one = { name: "antonello" };
false; // <======  EXPECTED OUTPUT
var two = ["name", "antonello"];
true; // <======  EXPECTED OUTPUT
var three = [[], [], {}, "antonello", 3, function() {}];
true; // <======  EXPECTED OUTPUT
//=========================================================

我试过了。

function isArrayFun(array){
    if {
        typeof array = 'array';
        return "Array";
    } else {
        return "Not an array"
    }
}

但同样,它不起作用。

我收到此错误:

Uncaught SyntaxError: Unexpected token '{'

我不知道为什么。 提前感谢您的帮助。

【问题讨论】:

    标签: javascript arrays function


    【解决方案1】:

    // First One
    const str = "I,Really,Like,Pizza";
    console.log(str.split(',').join(' '));

    // Second One
    function isArrayFun(array){
      return Array.isArray(array);
    }
    
    const one = { name: "antonello" };
    console.log(isArrayFun(one));
    
    const two = ["name", "antonello"];
    console.log(isArrayFun(two));
    
    const three = [[], [], {}, "antonello", 3, function() {}];
    console.log(isArrayFun(three));

    【讨论】:

      【解决方案2】:

      问题一:

      您引用了cha,所以它是一个文字字符串,而不是变量。使用

      function characterRemover(str, cha) {
        var replaced = str.split(cha).join(' ');
        return replaced;
      }
      
      var str = "I,Really,Like,Pizza";
      console.log(characterRemover(str, ","));

      问题 2:

      typeof 为数组返回 object。判断某事物是否为数组的方法是调用Array.isArray()

      您的if 语句中也存在语法错误。条件必须在() 内,而不是在{ 之后。

      function isArrayFun(array) {
        if (Array.isArray(array)) {
          return "Array";
        } else {
          return "Not an array"
        }
      }
      
      var one = { name: "antonello" };
      console.log(isArrayFun(one));
      var two = ["name", "antonello"];
      console.log(isArrayFun(two));
      var three = [[], [], {}, "antonello", 3, function() {}];
      console.log(isArrayFun(three));

      【讨论】:

        【解决方案3】:

        第一个问题。

        1. 函数名与你调用的函数不同
        2. 您应该使用 .split(cha) 而不是 'cha'。 split cha 实际上将通过您传递给该参数的字符串拆分您的字符串。 'cha' 查找字符串 'cha'

        工作示例:

        var str = "I,Really,Like,Pizza";
        
        function chracterRemover(str, cha){
            var replaced = str.split(cha).join(' ');
            return replaced;
        }
        console.log(chracterRemover(str, ","));

        您还可以使用简单的 RegExp 代替 split 和 join,并通过第三个参数使其全局有用,从而将函数提升到另一个级别,您可以在其中定义替换:

        var str = "I,Really,Like,Pizza";
        
        function chracterRemover(str, cha, chaTo){
            var reg = new RegExp(cha, "g");
            return str.replace(reg, chaTo);
        }
        console.log(chracterRemover(str, ",", " "));
        console.log(chracterRemover(str, ",", "."));

        第二个问题:

        已经有这样的功能了

        Array.isArray(value)
        

        您可以将任何类型的数据传递给该值,如果是数组则返回 true

        工作示例:

        let type1 = [1,5,6];
        let type2 = {a: 47};
        let type3 = 5;
        let type4 = "hello";
        
        console.log(Array.isArray(type1))
        console.log(Array.isArray(type2))
        console.log(Array.isArray(type3))
        console.log(Array.isArray(type4))

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-01-23
          • 1970-01-01
          • 2012-08-23
          • 1970-01-01
          • 1970-01-01
          • 2013-03-15
          • 2021-04-09
          相关资源
          最近更新 更多