У меня есть массив, например:значение массива в группы, которые находятся в том же диапазоне, кратные 10
var arr = [2,4,7,11,25,608,65,109,99,100,504,606,607];
мне нужно сделать так, чтобы каждое значение, которое находится в пределах диапазона его кратные десяти ниже и и несколько из десяти выше, они сгруппированы вместе.
Например, 2,4,7 находятся между 0 и 10, поэтому они должны быть вместе. 11 был бы один в своей группе, например, 25,65 и т. Д. 606,607,608 было бы вместе.
Массив выше должно стать:
[ [2,4,7],[11],[25],[65],[99],[101],[504],[100,109],[606,607,608] ]
Я думал об этом в течение нескольких часов, и я не смог придумать ничего еще. Это очень плохо, не так много стоит упомянуть, но до сих пор я играю с Math.round (http://jsfiddle.net/40napnyx/2/)
Edit: Я хотел бы добавить еще один вопрос (хотя я не буду выбирать правильный ответ на основе этого, если фактические ответы не включают решение этой новой проблемы).
Массив может содержать значения с буквами. Эти значения должны быть в одной и той же группе в алфавитном порядке (для определения ордера берется только первая буква). Эта группа должна быть последним значением в результирующем массиве.
Так, например var arr = [2, 4, 11,'a3', 25, 7, 'j', 'bzy4];
будет ли [[2,4,7],[11],[25],['a3','bzy4', 'j']]
Где ваш первоначальный 'arr' массив в скрипку? что вы пытаетесь сделать с математикой? Что насчет номеров '10' и' 100'? –
В скрипте цикл for выглядит так, как будто массив содержит числа от 0-21. –
2,4,7 находятся между 0 (предыдущий кратный 10 из этих чисел) и 10 (их следующий кратный 10), поэтому они должны быть сгруппированы вместе. –