я могу предложить элементарную "волшебная функция" решение. Я бы хотел, чтобы вы отправили немного больше о том, что вы пробовали, или, по крайней мере, о каком-то направлении мышления относительно решения. Я также не понимаю, как должны работать специальные персонажи, например, они должны быть включены как часть обычного алфавита?
В любом случае, мое предложение состоит в том, чтобы создать массив, содержащий все буквы алфавита, в том числе специальные, в которых они нужны/нужны. Затем вы перебираете массив «рядов букв» (назовите его test
), и для каждого символа в нем проверьте, находится ли его индекс в массиве alphabet
сразу после индекса символа, который предшествует ему в массиве test
. Если нет, вы можете переместить его в новое пространство в другой массив (назовите его grouped
).
Если (как, если символ приходит после того, как тот же предыдущий элемент в обоих alphabet
и test
), вы делаете еще один чек, чтобы увидеть, если характер после его в test
массиве также приходит после него в alphabet
массив. Если это так, это означает, что вы можете просто продолжить следующую итерацию цикла test
, иначе это означает, что следующий символ в test
будет прерывистым символом, поэтому вы можете изменить последнюю строку, которую вы ввели в grouped
, чтобы включить "-"+test[i]
.
function someMagicFunction(test){
var alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o", "ö","p","q","r","s","t","u","ü","v","w","x","y","z"];
var grouped = [];
for(var i=0; i<test.length; i++){
if (grouped.length && alphabet.indexOf(test[i]) - alphabet.indexOf(test[i-1])==1){
if(alphabet.indexOf(test[i+1])-alphabet.indexOf(test[i])==1)
continue;
else grouped[grouped.length-1] += "-"+test[i];
}
else
grouped.push(test[i]);
}
return grouped;
}
var series = ["a", "b", "d", "e", "f", "g", "h", "i", "l", "u", "ü"];
console.log(someMagicFunction(series));
Вы можете просмотреть результаты на JSBin: http://jsbin.com/kigozelaji/1/edit?js,console
что логика этого вывода? – renakre
Мне нужно сделать это для проекта, который я делаю –
нормально, но что решает, как вы группируете буквы. Первая группа - 2 символа, вторая - 4, затем 2, затем 1. Что управляет этим? –