Array Umkehren ist nicht für mich arbeiten ...
Betrachten Sie den folgenden code (Reagieren JS-code):
poll() {
var self = this;
var url = "//" + location.hostname + "/api/v1/eve/history/historical-data/" + this.state.itemId + '/' + this.state.regionId + '/40';
$.get(url, function(result) {
console.log(result.data, result.data.reverse());
self.setState({
error: null,
historicalData: result.data.reverse(),
isLoading: false
});
}).fail(function(response) {
self.setState({
error: 'Could not fetch average price data. Looks like something went wrong.',
});
});
}
Ankündigung der Konsole.log. Mal sehen, ein Bild:
Zuletzt habe ich geprüft, reverse sollte die umgekehrte Reihenfolge des Arrays. Doch es muss nicht.
Bin Ich Mit dieser falschen (offizielle MDN Docs)? Warum nicht auch rückwärts arbeiten?
Von der MDN docs: "Die
Ich habe versucht, diese Denkweise, die ich tun könnte:
Nein, Sie ist Umgekehrt. Die Konsole in was auch immer browser Sie verwenden zeigt Objekte in Ihrem aktuellen Zustand, so
Aber das hilft mir nicht bei allen, weil, wenn die Daten in Diagramme, die Etiketten zu Lesen, von heute zu gestern, als wenn es Umgekehrt war, Sie würde Sie Lesen, gestern und heute
Ihre obige code ruft
reverse()
Methode kehrt ein array statt." (Hervorhebung nicht von mir)Ich habe versucht, diese Denkweise, die ich tun könnte:
result.data.reverse()
dann nur console.log()
result.data
. Leider ist es nicht UmgekehrtNein, Sie ist Umgekehrt. Die Konsole in was auch immer browser Sie verwenden zeigt Objekte in Ihrem aktuellen Zustand, so
result.data.reverse(); console.log(result.data);
geben Sie genau die gleiche Ausgabe wie console.log(result.data); result.data.reverse();
Aber das hilft mir nicht bei allen, weil, wenn die Daten in Diagramme, die Etiketten zu Lesen, von heute zu gestern, als wenn es Umgekehrt war, Sie würde Sie Lesen, gestern und heute
Ihre obige code ruft
result.data.reverse()
zweimal. Dies bedeutet, dass, wenn das array angezeigt wird, wird es in Ihrer ursprünglichen Reihenfolge. Haben Sie versucht mit code nur Anrufe result.data.reverse()
einmal?InformationsquelleAutor TheWebs | 2016-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie bei https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse,
reverse()
kehrt die Reihenfolge von array im Ort, also der array ist Umgekehrt, nachdem es aufgerufen wurde. Sie fordern es doppelt, was in das array wieder zu seiner ursprünglichen Bestellung. Versuchen Sie dies:Haben Sie verstanden, Matt Harrison ' s Antwort? Die Konsole ist die Protokollierung der array in umgekehrter Reihenfolge zweimal, weil es die Auswertung der reverse () - Aufruf vor der Anmeldung.
InformationsquelleAutor AmericanUmlaut
Er hat sich umgedreht, die
reverse()
wird ausgeführt, bevor dieconsole.log()
. Es mutiert das eigentliche array zunächst in Ort der Rückgabe einer Referenz, also dann, wenn es angemeldet ist,a
auch Umgekehrt.Alles in der
console.log
Klammern zuerst ausgewertet. Versuche 2 Umgekehrt können Sie erraten, was passiert, es geht wieder auf original um, wie in deinem Beispiel.var reversedData = result.data.reverse(); console.log(reversedData);
Noch das array ist, nicht Umgekehrt. es zeigt genau das gleiche wie vorher. Einige einem vorgeschlagen sein, weil ich call reverse-sonst wo, aber nie weniger, dieses Stück code nicht reverse-array. Ich bin nicht sicher, warum.In Ihrem Beispiel, das Sie nennen
result.data.reverse()
zweimal. So es geht zurück zur ursprünglichen Bestellung.Dein screenshot ist
already
zeigt das array in umgekehrter Reihenfolge. Entfernen Sie alle Aufruferesult.data.reverse()
und melden Sieresult.data
auf der Konsole, und ich denke, Sie werden sehen, Sie in Ihrer ursprünglichen Reihenfolge.InformationsquelleAutor Matt Harrison
Die Ursache des Problems ist, dass Sie nicht verstehen, wie Ihre browser-Konsole funktioniert.
Viele Browser haben Konsolen, die Anzeige der Objekte in dem Zustand, wie Sie sind, wenn Sie erweitern Sie in der Konsole oder, wenn Sie die Konsole öffnen, auch wenn Sie zu ändern, nachdem
console.log()
genannt wird. Also, wenn Sie tun:sehen Sie die gleiche Ausgabe doppelt. In der zweiten Zeile kehrt das array im Ort, also beide log-Ausgänge sind mit den gleichen array, in seinem gegenwärtigen Zustand.
Demonstrieren dieses Verhalten einer Konsole, können Sie das folgende tun:
was Sie sehen, ist, dass
b.a
ist[1, 9, 3]
in beiden Konsolen-Ausgänge.InformationsquelleAutor JLRishe
wenn Sie eine sortable in Ihrem array von Objekten, "sort" wird die Neuordnung nach dem drücken ein Element in der Elemente
sagen,
InformationsquelleAutor Joseph Ocampo