首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >显式jquery indexOf()

显式jquery indexOf()
EN

Stack Overflow用户
提问于 2017-11-04 05:39:42
回答 5查看 204关注 0票数 0

假设我有一个来自数据库的带有ids的字符串:

代码语言:javascript
运行
复制
    string = "3, 4, 5, 8, 16, 2, 43"

和一些复选框中的数值,我映射到一个数组中

代码语言:javascript
运行
复制
    filter = ["35", "34"]

我想要比较数组中的所有数字是否都是字符串的一部分,所以我尝试了下面这样的方法(比较有效的方法)

代码语言:javascript
运行
复制
    if ( string.indexOf(filter) !== -1 )
    { console.log("numbers of filter are in string") }

但我的问题是3在34中-所以indexOf是真的。你知道我该怎么比较这个“正确的方式”吗?

EN

回答 5

Stack Overflow用户

发布于 2017-11-04 05:46:58

我的例子。希望能有所帮助

代码语言:javascript
运行
复制
const str = "23, 4, 567, 7",
      firstArr = ["1", "3", "4"],
      secondArr = str.split(", ");

if(secondArr.filter(e => firstArr.indexOf(e) !== -1).length > 0) {
    console.log('str has some numbers from the firstArr');
}
票数 2
EN

Stack Overflow用户

发布于 2017-11-04 05:43:34

您可以很容易地在前面添加一个空格:

代码语言:javascript
运行
复制
const string = " 3, 4, 5, 8, 16, 2, 43",
    filters = ["35", "34"];

if(filters.every( filter => string.includes(" "+filter))){
  alert(" all found!");
}

或者,您可以从字符串中构建一个实数组:

代码语言:javascript
运行
复制
const string = "3, 4, 5, 8, 16, 2, 43",
    filters = ["35", "34"];

const ids = string.split(", ");

if(filters.every( filter => ids.includes(filter))) 
   alert(" all found!");
票数 0
EN

Stack Overflow用户

发布于 2017-11-04 05:44:16

使用String.prototype.includes()

代码语言:javascript
运行
复制
string.includes(filter)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47104769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档