Итак, у меня есть массив объектов. На самом деле объекты следуют спецификации GeoJSON, поэтому имейте это в виду. В объектах «свойства» существует доверенность «имени». Это имя будет A, B, C ... blah ... Z, AA, AB и т. Д. И т. Д. Для каждой отдельной функции. Смотрите пример JSON (я вырезать некоторые другие вещи, которые не были важны для этого вопроса, например, геометрии, а что нет ...):Javascript - Получить следующую букву из массива объектов
{
"features" : [{
"properties" : {
"name" : "A",
"description" : null,
},
"type" : "Feature"
}, {
"properties" : {
"name" : "B",
"description" : null,
},
"type" : "Feature"
}, {
"properties" : {
"name" : "C",
"description" : null,
},
"type" : "Feature"
}
],
"type" : "FeatureCollection"
}
То, что я хотел бы сделать, это найти MAX письмо внутри этого массива функций, чтобы возвратить следующий в серии. В этом примере «C» будет считаться MAX, поэтому мне нужно будет вернуть значение «D». Если бы у меня был АА, это считалось бы МАКСЫМ, и оно вернуло бы «АВ». Если максимальное значение оказалось «Z», я хотел бы вернуть значение «AA».
Может игнорировать использование строчных букв и использовать только 26 английских букв верхнего уровня. Никаких других персонажей.
Я считаю, что смогу решить эту проблему с использованием javascript CharCodeAt (index), а также с применением Math.max, добавив + 1, а затем вернемся к описанию символа ascii ... но у меня возникают проблемы с приведением это вместе в рабочей функции, которая охватывает все это.
Помощь будет оценена!
Обновление: Я получил его частично, работая со следующим кодом. Однако не совсем поняли, как заставить его работать, если он обертывается от Z до AA. Или если MAX окажется AF, тогда возвращается AG. AZ должен был вернуть BA.
String.fromCharCode(Math.max.apply(Math,someObject.features.map(function(o){return o.properties.name.charCodeAt(0);})) + 1)
Другие известные правила:
- Верхний предел может быть ZZ - весьма маловероятно, что я должен обернуть обратно AAA
- Максимальный характер не всегда будет последним в массиве, так не может просто получить последнюю функцию массива.
Будет ли MAX всегда просто быть последним объектом в массиве функций? – Ju66ernaut
Не обязательно ... так что вы не могли просто зацепить последний элемент массива – dvsoukup
* считалось бы MAX * - будет MAX произвольным параметром ввода? – RomanPerekhrest