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, время: 11:31. |