Mein Ziel ist es, durch eine Reihe von Ergebnissen zu iterieren und Sachen mit den Daten zu tun, aber aus irgendeinem Grund kann ich nicht die foreach Schleife in Javascript zu arbeiten, kann ich nicht scheinen, irgendwie zu machen Aufzählungsarbeit.Javascript forEach funktioniert nicht
Hier ist mein Test
console.debug("I got this far.");
for(var i=0;i< results.length; i++){
console.debug("Worked.");
}
console.debug("Past.");
console.debug(results);
ich auch
results.forEach(function(x) { console.debug("Worked"); });
und
for(var x in results)
Keine scheinen, zu arbeiten versucht haben, ist es etwas, was ich falsch mache?
Der Ausgang für die oben ist
I got this far. query.html:39
Past. query.html:40
[ Object , Object , Object , Object , Object , Object , Object , Object , Object , Object ]
So weiß ich, dass die Ergebnisse Variable die richtige Art ist, aber es ist Iterieren einfach nicht. Es gibt einen anderen Ort, an dem forEach() gut funktioniert, aber hier ist es nicht, irgendwelche Vorschläge zum Debuggen und Adressieren wären hilfreich.
vollständige Code (Arbeitslösung)
var table;
var request = { query : { match_all : {}}};
var map;
function initialize(results) {
var myOptions = {
zoom: 8,
center: new google.maps.LatLng(41.4, -71.3),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'),
myOptions);
results.forEach(function(x) {
var markerLoc = new google.maps.LatLng(x.location.lat, x.location.lon);
var marker = new google.maps.Marker({
position: markerLoc,
map: map,
title: "Hello World!"
});
});
};
$(document).ready(function() {
var results = [];
$.ajax({
url: "http://localhost:9200/devices/devices/_search",
type: "POST",
data: JSON.stringify(request),
dataType: "json",
beforeSend: function(x) {
if (x && x.overrideMimeType) {
x.overrideMimeType("application/j-son;charset=UTF-8");
}
},
success: function(data) {
data.hits.hits.forEach(function(x) { results.push(x._source); });
initialize(results);
}
});
});
Was ist "Ergebnisse"? Welchen Wert hat 'results.length'? Wie ist es bevölkert? – Quentin
Ich frage mich nur, ob 'Ich habe so weit 'ist in Zeile 39, wie' Past.' ist in Zeile 40. – taskinoor
@Quentin: sieht aus wie 'var results = Object.create (Array.prototype);' – jAndy