javascript - 在数组中查找字符串

标签 javascript

我正在使用黑客排名工具。

在那里,用户给出的所有输入都是一个字符串

因此用户给出的输入将是

1,2,3,4,5 可以视为"1"."2","3","4"

现在,我想将其转换为数字数组

if (input) {
 if (input.split(',').indexOf("") > - 1) { console.log("invalid input") }
  else { input =  input.split(',').map(Number);   }
} else {
  input =  [1, 2, 3, 5, 1, 5, 9, 1, 2, 8]; 
}

在这里,我检查是否指定了输入,如果是,它将采用用户定义的输入,否则它将采用我定义的输入作为 inpurt

现在,用户给出的输入也可以是字符串,在这种情况下我想抛出一个错误,指出“无效输入”

为此我想到了这样的事情

 if (input.split(',').indexOf("") > - 1) { console.log("invalid input")

但这似乎不起作用,有人可以帮我弄清楚我该怎么做吗?

更新:当我说用户给出的输入可以是字符串时,我的意思是他可以给出类似“1,2,3,abc”的内容,这是无效输入(因为它包含abc)

示例: 1, 2, 3, 4 当控制台日志给出“1, 2, 3, 4”时,它是一个基本上包含数字的字符串(有效输入 )

但是

输入这个

1, 2, 3, 4abc 是无效输入,因为它由不是数字的 4abc 组成

所以当我这样做

 input =  input.split(',').map(Number);

对于上述内容,它可能会给我

[1,2,3,NaN]

最佳答案

保罗的回答几乎是正确的。不过,在过滤函数中,您还需要解析数字,然后检查它是否不是 NaN

const numbers = input.split(',')
  .filter(n => !isNaN(parseInt(n, 10)))

关于javascript - 在数组中查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53846332/

相关文章:

javascript - 元素加载时执行 javascript 函数

javascript - Fabricjs:IText锁修改

javascript - 在 Google Charts API 中设置硬最小轴值

javascript - 需要关于如何在 JavaScript 中分解非常大的数字的提示/建议

JavaScript 基本代码告诉我我有什么问题

javascript - JavaScript 中的日期时间

javascript - 如何使用 mark.js 突出显示不同的搜索结果?

javascript - IIFE 可链接未正确返回

javascript - 将 HTML 表单输入转换为 Javascript 变量并比较值

javascript - Bootstrap Popovers(和一般的 Bootstrap )不工作