Требуется помощь
Не получается отсортировать по sum и сделать таблицу.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Документ без названия</title> </head> <body> <script> function sum(b,c){ a=+arr[i][1]+(+arr[i][2]); return a; } function pro(b,c){ a=+arr[i][1]*(+arr[i][2]); return a; } function raz(b,c){ a=+arr[i][1]-(+arr[i][2]); return a; } var arr=[ ["Петя",9,3], ["Маша",8,5], ["Коля",7,3], ["Вася",6,1] ]; for(i=0;i<arr.length;i++){ u=(i+1)+','+arr[i][0]+','+sum(arr[i][0])+','+pro(arr[i][0])+','+raz(arr[i][0]); document.write(u+'<br>'); } </script> </body> </html> |
<script type="text/javascript"> var arr=[ ["Петя",9,3], ["Маша",7,5], ["Коля",11,3], ["Вася",10,1] ]; var obj={}; var j=0; for(i=0;i<arr.length;i++){ obj[''+arr[i][1]+''+(10000000+j)]=arr[i];j++ } j=0; for(i in obj){ arr[j]=obj[i];j++; } document.write(arr.join('<br/>')) </script> |
Deff,
а если Коля,7 Маша,7 ??? |
рони,
:) Поправил |
А ещё какие решения будут?
|
Цитата:
Ща - профессор... |
dima***,
Снова да ладом ... <!DOCTYPE HTML> <html> <head> <title></title> <meta charset="utf-8" /> </head> <body> <script type="text/javascript"> var arr=[ [53,"2015-03-18 09:53:33","Super User"], [63,"2015-03-21 17:30:00","Super User"], [53,"2015-03-18 09:53:33","Super User"], [62,"2015-03-21 10:52:41","test"], [56,"2015-03-18 15:57:33","Super User"], [61,"2015-03-19 18:53:16","Super User"], [51,"2015-03-18 09:16:00","Super User"], [60,"2015-03-19 18:53:04","Super User"], [57,"2015-03-18 16:00:40","Super User"], [58,"2015-03-18 16:01:46","Super User"], [59,"2015-03-18 16:48:52","Super User"] ]; //функция для вывода результата для теста function show( arr, str) { str = str || ''; var html = str + "<br />"; for (var i=0; i<arr.length; i++) { html+=arr[i].join()+"<br />" } return html+"<br />" } //без сортировки document.write(show(arr,'без сортировки')) //функция для сортировки function s(a, b) { return function(c, d) { return c[a] < d[a] ? b ? 1 : -1 : c[a] > d[a] ? b ? -1 : 1 : 0 } }; //сортируем по первому полю 0 arr.sort(s(0)) document.write(show(arr,'по первому полю')) //сортируем по первому полю 0 убывание arr.sort(s(0, true)) document.write(show(arr,'по первому полю убывание')) //сортируем по второму полю 1 arr.sort(s(1)) document.write(show(arr, 'по второму полю')) //сортируем по второму полю 1 убывание arr.sort(s(1, true)) document.write(show(arr, 'по второму полю убывание')) //сортируем по третьему полю 2 arr.sort(s(2)) document.write(show(arr, 'третьему полю')) //сортируем по третьему полю 2 arr.sort(s(2,true)) document.write(show(arr, 'третьему полю убывание')) </script> </body> </html> |
:no: Мне совсем другое нужно!Не как сортировать элементы в массиве.
а отсортировать по sum и сделать таблицу. Или хотя бы из этого массив сделать: for(i=0;i<arr.length;i++){ u=(i+1)+','+arr[i][0]+','+sum(arr[i][0])+','+pro(arr[i][0])+','+raz(arr[i][0]); document.write(u+'<br>'); } |
Цитата:
<script type="text/javascript"> var arr=[ ["Петя",9,3], ["Маша",8,5], ["Коля",11,3], ["Вася",10,1] ]; var obj={}; var j=0; for(i=0;i<arr.length;i++){ obj[''+(arr[i][1]+arr[i][2])+''+(10000000+j)]=arr[i];j++ } j=0; for(i in obj){ arr[j]=obj[i];j++; } document.write(arr.join('<br/>')) </script> |
Цитата:
|
Часовой пояс GMT +3, время: 14:31. |