当search键为int类型时,我发现数组值存在。但是我如何才能在key是字符串的地方找到数组值,例如"a","b"
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));
}实际产出
-1
0期望的
b
0发布于 2016-06-21 18:22:38
你似乎把属性和数组索引搞混了。
search["b"] = "44";将search的b属性定义为'44'
它不向数组中插入值。要将值插入到指定索引处的数组中,需要指定索引号
发布于 2016-06-21 18:24:24
您可以尝试如下所示:
获取003的-1的原因是,当您运行$.inArray时,它只检查索引值。
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)<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
发布于 2016-06-21 18:26:38
您可以使用内置的数组函数.find或.findIndex
var arr = ["44", "003"];
if(arr.findIndex(e => e === "44") !== -1) {
//"44" is in the array
}
else {
//"44" is not in the array
}https://stackoverflow.com/questions/37941709
复制相似问题