У меня естьКак получить пару ключ-значение из массива объектов JavaScript?
var results = {};
Я написал код, заполняющий результаты (из запроса HTTP GET) с данными в этом формате:
({
"result":[
{
"Longitude" : "-097.722382",
"Zipcode" : "78751",
"ZipClass" : "STANDARD",
"County" : "TRAVIS",
"City" : "AUSTIN",
"State" : "TX",
"Latitude" : "+30.310606"
}
]}
)
Однако я хочу результаты иметь TRAVIS
в качестве ключа, и затем добавьте еще одну переменную под названием count
, которая подсчитывает, сколько всего было в этом графстве.
У меня возникли проблемы с доступом к ключам & значения; Кажется, я всегда получаю undefined
. Как мне получить доступ к ключам?
Вот мой код. По сути, я переживаю кучу почтовых индексов, отфильтровывая только те, что находятся в Техасе.
var i = 0;
var results = {};
/*
var results = {
'TRAVIS': 10,
'DALLAS': 15,
};
*/
function getValues(obj, key) {
var objects = [];
for (var i in obj) {
if (!obj.hasOwnProperty(i)) continue;
if (typeof obj[i] == 'object') {
objects = objects.concat(getValues(obj[i], key));
} else if (i == key) {
objects.push(obj[i]);
}
}
return objects;
}
callback = function(response) {
//console.log('callback('+i+')');
var str = '';
response.on('data', function (chunk) {
str += chunk;
});
response.on('end', function() {
console.log('Processing: ' + i);
// TODO: Parse JSON
str = str.replace(/['\(\)]/g, "");
if(str.substring(0,1) == "{"){
JSON.parse(str);
}
if(str.substring(0,1) == "{"){
if((str.substring(str.search("\"State\"") + 10, str.search("\"State\"") + 14)) == "\"TX\"")
{ //console.log("THIS IS FROM TEXAS ");
results[i] = str;
}
}
setTimeout(function() {
i++;
if (i >= data.length) {
console.log(results);
} else {
fetch();
}
}, 1000)
});
}
function fetch() {
//console.log('fetch('+i+')');
var options = {
host: 'gomashup.com',
path: '/json.php?fds=geo/usa/zipcode/'+ JSON.parse(data[i].zip)
};
http.request(options, callback).end();
}
fetch();
Как мы можем знать, что не так, если вы не показываете нам свой нерабочий код? –
- это ваше требование отделить значения от заполненного результата? – aashima