Прикрепить функцию для массива

Рейтинг: 1Ответов: 2Опубликовано: 15.12.2014

Здесь посетитель по запросу вводит текст, который публикуется на странице в виде числовых символов:

<script language="javascript">
var str = new String (prompt ("Input text"));
var array = new Array();
for (i=0; i<str.length; i++) {
array[i] = str.charCodeAt(i);
document.write(+array[array.length - 1] + ', ');}
</script>

Здесь я хочу отсортировать эти числа в нисходящем порядке, прикрепив к массиву функцию. Не срабатывает, подскажите, пожалуйста, почему?:

array[i].sort(s);
function s (arg1 , arg2) 
{
    if (arg1 < arg2) return 1; 
    if (arg1 > arg2) return -1; 
    if (arg1 == arg2) return 0; 
}

Ответы

▲ 1Принят
var str = prompt("Input text");
var arr = [];
for(var i = 0; i < str.length; i++){
    arr[i] = str.charCodeAt(i);
    document.write(arr[i] + ', ');
}
//сортируем массив
arr.sort(function(a, b){
    return b - a;
});
//выводим отсортированный массив
document.write('<br />');
for(i=0; i<arr.length; i++){
    document.write(arr[i] + ', ');
}
▲ 1

Спасибо, @web__programmer! У меня получилось так же, но немного по-другому:

<script language="javascript">
var str = new String (prompt ("Введите текст"));
var arr = new Array();
for (i=0; i<str.length; i++) {
arr[i] = str.charCodeAt(i);
}
arr.sort(sor);
function sor( arg1 , arg2 ) 
{if (arg1 < arg2) return 1; 
if (arg1 > arg2) return -1; 
if (arg1 == arg2) return 0; 
};
document.write(arr + '&nbsp;');
</script>