2016-08-19 17 views
-2

配列変数名を出力する関数を作成します。配列内の特定の文字列を検索し、配列変数名jQueryを出力する方法は?

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

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

出力= "Apple"(その罰金);

私は配列を必要としています。変数名、つまり配列にある文字列の場合は "myCategory"です。

+0

一般的にコードの動作方法ではありません。あなたが望むのは、ソースコードを文字列として読み込んでそれを分析して、探しているものを見つけることです。 – alebianco

+0

変数名を返してデータベースに保存する必要があります。 @ alebianco –

+0

同じ文字列のmyString値が見つかった場合は "myCategory"が必要です –

答えて

0

変数の名前は識別子であり、識別子の名前を尋ねることはできません。

あなたがしたい場合は、あなたが私の知る限り、変数のnamestringを得ることができないというindentifier

var output = myCategory; 

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

の名前に等しい新しい変数を作成することができます。あなたが何をすることができるかは、すべての配列を1つのオブジェクトに置き、その配列のpropertynameを返すことです。

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)); 
関連する問題