foreach JSON объекта
Всем привет! Подскажите как сделать форыч для следующего:
С сервера приходит массив вида
(
[12] => Выбранный адрес занят.
[14] => Выбранный адрес занят.
[12582] => Выбранный адрес занят.
[10698] => Выбранный адрес занят.
[9855] => Выбранный адрес занят.
[8872] => Выбранный адрес занят.
[1499] => Выбранный адрес занят.
[1500] => Выбранный адрес занят.
[12020] => Выбранный адрес занят.
[1505] => Выбранный адрес занят.
)
делаю: var data = $.parseJSON(data); Необходимо сделать форыч объекта data. Подскажите кто знает как:) |
function forEach(data, callback){
for(var key in data){
if(data.hasOwnProperty(key)){
callback(key, data[key]);
}
}
}
forEach({a: 5, b: 7, c: 42, d: 'Hello, world!'}, function(key, value){alert(key + ': ' + value)})
|
B@rmaley.e><e
Спасибо за помощь! |
Получается, что для перебора каждый раз нужно создавать такую функцию? Не убогое ли решение неужели нет возможности на чистом явасрипте или в jquery на крайний момент перебрать объект без дополнительных извращений, без оставляния в глобальном пространстве одноразовых функций?
После нескольких минут соорудил функцию, которая не оставляет мусора, вроде задача решена, но остадочек от убогости яваскрипта остался. Вещи, которые в других языках решены на уровне конструкций языка в яваскрипте приходится ломать голову как реализовать
(function(data, v){for(k in data){ var v = data[k];
console.log("k:", k, "v:", v);
}})(HH_BLOCKS_SLIDER);
|
mpak,
for in не подходит? Он вроде для этого и создан. А то что вверху -- действительно бредятина какая то, видимо, ребята с горшка сразу в разработку ринулись |
B@rmaley.e><e,
Код ваш дебилен сразу по двум причинам. Первое -- это то что вы создали обертку над функционалом for in, нихуя не добавляющюю к нему, а только обвешивающую лишними коллбеками. Второе -- это то что в вышем внутреннем for in нет выхода в нужном месте, вместо этого Вы обходите все поля всех прототипов. Тут, вообще, все такие идиоты? Я пока других, что-то не встречал |
mpak,
Что ты соорудило, чудо в перьях? Если тебя смущает то, что for in оставляет переменные (а так оно и должно быть, чтобы была возможность восстановить цикл) есть delete
for(i in {a: 1}){}
alert(i)
delete i
alert(window.i)
Цитата:
Да ты еще при всех своих беспонтовых извращениях умудрилось в глобал насрать
;(function(data, v){for(k in data){ var v = data[k];
console.log("k:", k, "v:", v);
}})({a: 1});
console.log(k)
молоко на губах начала высуши, а потом о *более других языках* рассуждай. Из ынтырпрайзных языков сейчас у JS почти все отсосут, если не считать ruby и тикля, которые, ынтырпрайзом то особо и не назовешь. Выдыхай, епт |
| Часовой пояс GMT +3, время: 15:24. |