どういうわけか配列をループしようとしても、jQuery などのツールによって少しわかりにくくなります。
次のように提案されているように、配列からオブジェクトを作成できます。
var objLookup = function(arr, search) {
var o = {}, i, l, first, second;
for (i=0, l=arr.length; i<l; i++) {
first = arr[i][0]; // These variables are for convenience and readability.
second = arr[i][1]; // The function could be rewritten without them.
o[first] = second;
}
return o[search];
}
しかし、より迅速な解決策は、配列をループして、見つかったらすぐに値を返すことです。
var indexLookup = function(arr, search){
var index = -1, i, l;
for (i = 0, l = arr.length; i<l; i++) {
if (arr[i][0] === search) return arr[i][1];
}
return undefined;
}
次に、コード内でこれらの関数を次のように使用するだけで、すべてのコードの途中でループする必要がなくなります。
var log = [
["comp","Please add company name!"],
["zip","Please add zip code!"]
];
objLookup(log, "zip"); // Please add zip code!
indexLookup(log, "comp"); // Please add company name!
これらが使用されていることを示すjsfiddleを次に示します。