如何在数组中查找特定字符串并打印数组变量名称jQuery?

时间:2016-08-19 15:11:44

标签: javascript jquery arrays

我想创建一个打印数组变量名的函数。

var myString = "Apple";
var myCategory = ["Mango","Apple","froot","others"]

found = $.grep( myCategory, function ( value, i) {
   return (value.indexOf( myString) >= 0);
});
alert(found);

output =“Apple”(很好);

如果在数组中找到字符串,我想要数组变量名,即“myCategory”。

2 个答案:

答案 0 :(得分:0)

变量名称是标识符,您不能要求标识符名称是什么。

如果需要,可以创建一个等于该标识符名称的新变量

var output = myCategory; 

if(found === true){
   alert(output);
}

答案 1 :(得分:0)

据我所知,您无法获取变量的名称字符串。你可以做的是将所有数组放在一个对象中,然后返回该数组的属性名。

   var myString = "Apple",
        data = {
            "myCategory" : ["Mango","Apple","froot","others"],
            "othercategory" : ["Car", "Bike", "Boat"]
        },
        find = function find( str ) {
            return Object.keys(data).reduce(function( result, aryName ) {
                if (data[aryName].indexOf(str) !== -1) result = aryName;
                return result;
            }, false);
        };
    console.log(find(myString));