首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否通过$.inArray在另一个数组中查找数组值?

是否通过$.inArray在另一个数组中查找数组值?
EN

Stack Overflow用户
提问于 2016-06-21 18:17:15
回答 3查看 92关注 0票数 1

search键为int类型时,我发现数组值存在。但是我如何才能在key是字符串的地方找到数组值,例如"a""b"

代码语言:javascript
复制
var arr = ["44", "003"];
var search = [];

search[0] = "003";
search["a"] = "88";
search["b"] = "44";

for (var i in arr) {
    console.log($.inArray(arr[i], search));
}

实际产出

代码语言:javascript
复制
-1
0

期望的

代码语言:javascript
复制
b
0
EN

回答 3

Stack Overflow用户

发布于 2016-06-21 18:22:38

你似乎把属性和数组索引搞混了。

代码语言:javascript
复制
search["b"] = "44";

searchb属性定义为'44'

它不向数组中插入值。要将值插入到指定索引处的数组中,需要指定索引号

票数 0
EN

Stack Overflow用户

发布于 2016-06-21 18:24:24

您可以尝试如下所示:

获取003-1的原因是,当您运行$.inArray时,它只检查索引值。

代码语言:javascript
复制
var arr = ["44", "003"];
var search = [];

search[0] = "003";
search["a"] = "88";
search["b"] = "44";

var result = arr.map(function(item) {
  return Object.keys(search).find(function(key) {
    return search[key] == item;
  });
});
console.log(result)
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>

票数 0
EN

Stack Overflow用户

发布于 2016-06-21 18:26:38

您可以使用内置的数组函数.find.findIndex

代码语言:javascript
复制
var arr = ["44", "003"];
if(arr.findIndex(e => e === "44") !== -1) {
  //"44" is in the array
}
else {
  //"44" is not in the array
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37941709

复制
相关文章

相似问题

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