У меня есть ситуация, когда я могу выбрать реализацию коллекции строковых ключей в виде объекта:
$.each(objects, function (key, object) {
collection[key] = "doesn't matter";
});
или массива:
$.each(objects, function (key, object) {
collection.push(key);
});
Я бы хотел иметь возможность чтобы быстро определить, содержит ли коллекция данный ключ. Если коллекция является объектом, я могу использовать:
if (collection.hasOwnProperty(key_to_find)) { // found it!... }
else { // didn't find it... }
Если коллекция является массивом, я могу использовать:
if ($.inArray(key_to_find, collection)) { // found it!... }
else { // didn't find it... }
Я полагаю, что использование встроенного в JavaScript hasOwnProperty будет быть быстрее, чем inArray () jQuery, но я не совсем уверен. Кто-нибудь знает больше о различиях в производительности между этими двумя методами? Или есть ли здесь более эффективная альтернатива, о которой я не знаю?