2017-02-21 5 views
0

Почему jQuery сортирует найденный элемент (ы) в «подкатегориях» ([0 ... 99] и т. Д.), Не объявляя его как ключ/пар объекта?jQuery его структура объекта?

e.x 0 ... 99

+2

То есть нормальное поведение консоли, чтобы предотвратить отображение сотни результатов сразу – piotrbienias

+0

Yep, это это функциональность браузера, а не функциональность jQuery. –

+0

@piotrbienias О, ну, это странно. У меня есть другие результаты с огромными объектами .. должно быть, что-то связано с прототипом NodeList, я думаю. – Testuser070

ответ

0

Это не JQuery, это поведение консоли браузера для итерации объектов (протестировано в Google Chrome и Microsoft Крае).

Попробуйте запустить этот код, чтобы это поведение для массива:

var test = { arr: [] }, i = 0; 
for(;i<200;) test.arr[i++] = 0; 
console.log(test); 

объект, возвращаемый $ («ДИВ») является итерацию. От MDN:

Объект является итерацию, если она определяет его поведение итерации, такие как какие значения петельные над for..of в конструкции. Некоторые встроенные типы , такие как Array или Map, имеют итерационное поведение по умолчанию, тогда как других типов (таких как Object) этого не делают.

Браузер использует эту функцию для отображения сгруппированных значений, чтобы избежать одновременного отображения всех значений.

Чтобы проверить, является ли объект итератора вы можете запустить следующий код в консоли (проверено на Google Chrome):

console.log(typeof {}[Symbol.iterator] === 'function'); 
console.log(typeof [][Symbol.iterator] === 'function'); 
console.log(typeof $("div")[Symbol.iterator] === 'function'); 
+0

попробуйте это ... это именно та проблема, с которой я сталкиваюсь -> var test = {}; для (var i = 0; i <200; i ++) { \t test [i] = i; } console.dir (test); – Testuser070

+0

* Дополнение к моему последнему комментарию * -> Это то, что я имел в виду .. в объекте (из источника), невозможно иметь фиктивные ключевые свойства .. или я не прав? – Testuser070

Смежные вопросы