我试图检查一个元素是否存在于三个数组中的任何一个中。我不知道如何返回找到该元素的数组的名称。任何人都可以引导我走向正确的方向吗?
我编写了一个函数,它将搜索中的元素作为其参数,然后返回数组名称:
var arr1 = ['a','b','c','d'];
var arr2 = ['e','f','g','h'];
var arr3 = ['i','j','k','l'];
function chkElem(elem)
{
var id = elem;
var isFound = null;
if(arr1.indexOf(id) || (arr2.indexOf(id) || (arr3.indexOf(id))))
{
isFound = ????
}
return isFound;
}
我不确定如何将父数组名称分配给“isFound”变量。
谢谢。
最佳答案
您不应该在函数逻辑中使用“变量名称”。相反,将数组设置为对象的属性并返回属性名称:
var arrays = {
"arr1": ['a','b','c','d'],
"arr2": ['e','f','g','h'],
"arr3": ['i','j','k','l']
};
for (var name in arrays)
if (arrays[name].indexOf(id) > -1)
return name;
return null;
或者,更好的是,使用数组的数组来搜索并返回索引:
var arrays = [
['a','b','c','d'],
['e','f','g','h'],
['i','j','k','l']
];
for (var i=0; i<arrays.length; i++)
if (arrays[i].indexOf(id) > -1)
return i;
return -1;
关于javascript - 如何在三个数组之一中查找元素,然后返回父数组名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12059588/