Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.02.2013, 12:43
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Требуется помощь
Не получается отсортировать по 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>

Последний раз редактировалось dima***, 06.02.2013 в 14:33.
Ответить с цитированием
  #2 (permalink)  
Старый 06.02.2013, 13:11
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

<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, 06.02.2013 в 13:36.
Ответить с цитированием
  #3 (permalink)  
Старый 06.02.2013, 13:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 25,905

Deff,
а если Коля,7 Маша,7 ???
Ответить с цитированием
  #4 (permalink)  
Старый 06.02.2013, 13:28
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

рони,
Поправил
Ответить с цитированием
  #5 (permalink)  
Старый 06.02.2013, 13:29
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

А ещё какие решения будут?
Ответить с цитированием
  #6 (permalink)  
Старый 06.02.2013, 13:39
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

Сообщение от dima***
А ещё какие решения будут?

Ща - профессор...
Ответить с цитированием
  #7 (permalink)  
Старый 06.02.2013, 13:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 25,905

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>

Последний раз редактировалось рони, 22.03.2015 в 00:54. Причина: замена массива
Ответить с цитированием
  #8 (permalink)  
Старый 06.02.2013, 15:15
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Мне совсем другое нужно!Не как сортировать элементы в массиве.
а отсортировать по 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>');
}
Ответить с цитированием
  #9 (permalink)  
Старый 06.02.2013, 15:34
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

Сообщение от dima***
а отсортировать по sum и сделать таблицу.
Ну той жа моей методой пойдет ?
<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>

Последний раз редактировалось Deff, 06.02.2013 в 15:38.
Ответить с цитированием
  #10 (permalink)  
Старый 06.02.2013, 15:37
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

Сообщение от dima***
Или хотя бы из этого массив сделать:
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>');
}
Этого не понял - покажите итоговый вид массива
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами. Требуется помощь. Кристи Общие вопросы Javascript 3 08.02.2011 17:00
IFRAME, требуется срочно помощь!!! A.alex Общие вопросы Javascript 13 13.06.2010 19:00
Требуется помощь. Дмитрий Котов Работа 9 22.02.2010 19:02
Требуется помощь в проверке функции удаления конечных пробелов. hurt Общие вопросы Javascript 4 16.11.2008 11:36
Цитирование текста в комментариях. Требуется помощь. shinjuku Общие вопросы Javascript 3 07.07.2008 13:19