Javascript задача. Нахождение крайних отрицательных элементов, сортировка.
02 Июл 2013
Задача.*
Дан массив случайных чисел в диапазоне от -20 до +20. Необходимо найти позиции крайних отрицательных элементов (самого левого отрицательного элемента и самого правого отрицательного элемента) и отсортировать элементы, находящиеся между ними.
Код javascript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
var arr = [1,2,-3,4,5,18,-20,2,5,-7,4,3,-1,8]; function func(arr) { var arr_ni = []; // массив индексов отрицательных элементов /* проходимся по исходному массиву и сохраняем индексы всех отрицательных элементов в отдельный массив*/ for(i = 0; i < arr.length; i++) { if (arr[i] < 0) { arr_ni.push(i); } } if (arr_ni.length == 0) { return 'Массив не содержит отрицательных элементов'; } if (arr_ni.length == 1) { return 'Массив содержит один отрицательный элемент'; } // индекс самого левого отрицательного элемента var left_i = parseInt(arr_ni.slice(0,1)); // индекс самого правого отрицательного элемента var right_i = parseInt(arr_ni.slice(-1)); // массив элементов, которые находятся между крайними отрицательными эл-ми var sort_arr = arr.slice(left_i+1, right_i); // сортировка sort_arr.sort(function(a,b){return a-b;}); // заменяем в исходном массиве неотсортированные элементы отсортированными arr.splice(left_i+1, sort_arr.length, sort_arr); return arr; } document.write(arr); document.write("<br>"); document.write(func(arr)); |
Результат:
1 2 3 4 5 6 |
1,2,-3,4,5,18,-20,2,5,-7,4,3,-1,8 1,2,-3,-20,-7,2,3,4,4,5,5,18,-1,8 |
Свежие комментарии