Различия в производительности между jquery.inArray () и Object.hasOwnProperty ()?

У меня есть ситуация, когда я могу выбрать реализацию коллекции строковых ключей в виде объекта:

$.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, но я не совсем уверен. Кто-нибудь знает больше о различиях в производительности между этими двумя методами? Или есть ли здесь более эффективная альтернатива, о которой я не знаю?

9
задан Gaurav 20 May 2011 в 17:18
поделиться