So habe ich ein Array von Objekten. Wirklich die Objekte folgen der GeoJSON-Spezifikation, also denken Sie daran. Innerhalb der "Eigenschaften" -Objekte existiert eine Eigenschaft von "Name". Dieser Name wird A, B, C ... blah ... Z, AA, AB usw. für jedes unterschiedliche Merkmal sein. Siehe JSON Beispiel (ich habe ein paar andere Dinge Streifen aus, die auf diese Frage nicht wichtig waren, wie die Geometrie und was nicht ...):Javascript - Holen Sie den nächsten Buchstaben aus einem Array von Objekten
{
"features" : [{
"properties" : {
"name" : "A",
"description" : null,
},
"type" : "Feature"
}, {
"properties" : {
"name" : "B",
"description" : null,
},
"type" : "Feature"
}, {
"properties" : {
"name" : "C",
"description" : null,
},
"type" : "Feature"
}
],
"type" : "FeatureCollection"
}
Was Ich mag würde tun, finden die MAX Buchstabe innerhalb dieser Reihe von Funktionen, um den nächsten in der Reihe zurückzugeben. In diesem Beispiel würde "C" als MAX betrachtet werden, daher müsste ich den Wert von "D" zurückgeben. Wenn ich AA hätte, würde das als MAX betrachtet werden, und es würde "AB" zurückgeben. Wenn der Maximalwert zufällig ein 'Z' ist, möchte ich einen Wert von 'AA' zurückgeben.
Kann die Verwendung von Kleinbuchstaben ignorieren und nur 26 englische Großbuchstaben verwenden. Keine anderen Charaktere.
Ich glaube, ich könnte dies mit etwas Verwendung des Javascript CharCodeAt (Index) sowie die Anwendung von Math.max, Hinzufügen + 1, dann die Konvertierung zurück zu ihr Ascii Character Representation ... aber ich habe Probleme zu bringen Dies zusammen in einer funktionierenden Funktion, die all diese Dinge durchläuft.
Hilfe wäre willkommen!
Update: Ich habe es teilweise mit dem folgenden Code arbeiten. Allerdings habe ich nicht recht herausgefunden, wie man es zum Laufen bringt, wenn es von Z nach AA umschlingt. Oder wenn der MAX AF ist, dann wird AG zurückgegeben. AZ müsste BA zurückgeben.
String.fromCharCode(Math.max.apply(Math,someObject.features.map(function(o){return o.properties.name.charCodeAt(0);})) + 1)
Andere bekannte Regeln:
- Obergrenze kann ZZ sein - sehr unwahrscheinlich, dass ich brauchen würde, um AAA zu wickeln zurück
- Die max Charakter wird nicht immer in dem Array letzte Mal gewesen sein, so kann nicht einfach die letzte Funktion des Arrays erhalten.
Wird der MAX immer nur das letzte Objekt in Ihren Funktionen Array? – Ju66ernaut
Nicht unbedingt ... so dass Sie nicht nur das letzte Element des Arrays schnappen könnten – dvsoukup
* würde als MAX * betrachtet werden - wird MAX der Random Input Param sein? – RomanPerekhrest