Поиск по json-массиву
Всем привет. Есть такой json-массив:
[{"name":"Dmitry", "lastname":"Ivanov"},{"name":"Dmitry", "lastname":"Petrov"}] Как достать из него список всех фамилий, только если имя Dmitry? |
Dimaz,
Как-то так: if (!Array.prototype.filter) { Array.prototype.filter = function(fun) { var len = this.length; if (typeof fun != "function") throw new TypeError(); var res = new Array(); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i in this) { var val = this[i]; if (fun.call(thisp, val, i, this)) res.push(val); } } return res; }; } var data = [{"name":"Dmitry", "lastname":"Ivanov"},{"name":"Dmitry", "lastname":"Petrov"}, {"name":"Dimaz", "lastname":"Petrov"}]; var filtered = data.filter(function (element, index, array) { return element.name == "Dmitry"; }); P.S. если юзать jquery, то так: var arr = jQuery.grep(data , function (element, index) { return element.name == "Dmitry"; }); |
Я так сделал, пока отвечали. Вроде работает.
var x = [{"name":"Dmitry","lastname":"Zakharov"},{"name":"Oleg","lastname":"Ivanov"},{"name":"Dmitry","lastname":"Petrov"}]; var y = []; for(var i=0, a=0; i<x.length; i++,a++){ if(x[i].name=="Dmitry"){ y[a] = x[i].lastname; } else{a--;} } $('b').text(y); Результат записал в массив y. Выводит Zakharov, Petrov. |
Часовой пояс GMT +3, время: 14:12. |