【问题标题】:Looking for a function that takes three arguments (x, y, z) and checks if the type of all three is a string寻找一个接受三个参数 (x, y, z) 的函数并检查所有三个参数的类型是否都是字符串
【发布时间】:2021-11-01 04:39:06
【问题描述】:

不知道在 for 循环之前放什么。不知道我是否需要 if/else 语句。如果数组中的项目是字符串,则尝试将其显示在控制台中。所以我知道我需要 consol.log

var stringOne = isString('rob','bob','carl')

function isString() {
//I dont know what to put before for loop

    for(let i = 0; i < arguments.length; i++) {
        // Dont know if i need an if/else statement
        // Trying to have it display in the console if items in an array are strings
        // So I know I need consol.log
    }

}

【问题讨论】:

标签: javascript arrays function for-loop


【解决方案1】:

every 在这里是合适的,并且执行 I/O(如 console.log)最好在函数的外部。该函数的名称表明它应该返回一个布尔值(真/假):

function isString(...args) {
    return args.every(s => typeof s === "string");
}

console.log(isString('rob','bob','carl'));

【讨论】:

  • 扮演魔鬼的拥护者,这在我看来就像一个家庭作业,并且 OP 可能需要保持循环格式。虽然我喜欢你回答的雄辩。 +1
【解决方案2】:

因为您似乎是初学者,所以我将扩展您当前拥有的代码,尽管 @trincot 提供了最好的解决方案。

在 for 循环中,您可以返回一个值,这样循环就不会继续。因为你只需要检查其中一个是否为假,可能是在数组中的位置0、1或2,你可以立即返回“假”。

如果只有字符串,循环会一直持续到结束,然后在方法结束时返回“true”。

所以在 for 循环之前不需要任何代码,只需要一个 if 语句,如果数组中的任何项目不是字符串,则返回“false”。

var stringOne = isString('rob','bob','carl')
var stringTwo = isString('rob','bob', 1)

function isString() {
    for(let i = 0; i < arguments.length; i++) {
      if (typeof arguments[i] != 'string') {
        return false
      }
    }

  return true
}

console.log({stringOne});
console.log({stringTwo});

【讨论】:

    【解决方案3】:

    循环中应该这样做:

    this_arg = arguments[i];
    if (typeof this_arg === 'string') console.log("arg number " + i + " is a string");
    

    It shows how to do it a bit here

    【讨论】:

      【解决方案4】:

      您可能会发现every 在这里很有用。它遍历the array you've made from the arguments 并检查每个元素是否与条件匹配。如果它们都匹配,则返回true,否则返回false

      function isString() {
        return Array.from(arguments).every(str => {
          return typeof str === 'string';
        });
      }
      
      console.log(isString('rob','bob','carl'));
      console.log(isString(2,'bob','carl'));

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-21
        • 1970-01-01
        • 1970-01-01
        • 2019-10-08
        • 1970-01-01
        • 2013-02-26
        • 1970-01-01
        • 2012-02-15
        相关资源
        最近更新 更多