У меня есть некоторые небольшие, но полезные дополнительные методы для основных JS объектов, таких как массив:Javascript: прототип х defineProperty х, что еще
Array.prototype.indexOfObject (свойство, значение)
Этот метод возвращает индекс объект в массиве (объектов), где свойство == значение, простое и продуктивное для меня.
Однако, когда я перечислить любой массив, метод будет отображаться, поэтому каждый раз, когда я должен сделать так:
for(var i in MyArray){
if(typeof(MyArray[i])=="typeneeded"){
// do something
}
}
Как я знаю, defineProperty сделать ноны перечислимого метода так он будет решать моя проблема, когда все браузеры ее принимают. Кстати, это уже безопасное использование defineProperty? IE9 работает хорошо? Другие браузеры? Есть ли третий способ сделать это?
Попробуйте [caniuse. com] (http://caniuse.com/), имеет полезную информацию об этом. –
Вы не должны использовать 'for ... in' с массивом. Используйте обычный цикл 'for' с инкрементирующим индексом или' forEach', если он доступен. – Phil
Использование традиционных для решения проблемы взламывания бесполезного оператора if. Я думаю, что мне нравится ... в, напомнить мне другие языки, но это жизнь ... – Gustavo