Javascript сортировка массива - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming

Программирование / Programming
Ищете помощи в написании программы, есть сложность в выполнении задания (в институте и т.д.), пожалуйста, спросите у нас в данном форуме и мы обязательно вам поможем.

Ответ
Опции темы
Непрочитано 04.05.2013, 10:11   #1
Пользователь

Автор темы (Топик Стартер) Javascript сортировка массива

Здравствуйте.

Значение куки:
Свернуть ↑Развернуть ↓


PHP код:
var arr get_cookie("product").split(",");
                var 
arrres = new Array();
                for(var 
0arr.lengthi++){
                    if(
arr[i] != "null"){
                        
arr[i] = arr[i].split("-");
                        if(
arrresarr[i][0] ] == 'undefined'){
                            
arrresarr[i][0] ] = new Array(arr[i][0],arr[i][1],arr[i][2])
                        }
                        else{
                            
arrresarr[i][0] ][1] = [ arr[i][0] ][1] + arr[i][1];
                        }
                    }
                } 
Ошибка:
Код:
[04.05.2013 10:53:35] JavaScript - http://test1.ru/catalog/rolls
 Event thread: click
 Uncaught exception: TypeError: Cannot convert 'arrres[ arr[0] ]' to object
 Error thrown at line 34, column 28 in setAddBasketProduct(id, count, price) in http://test1.ru/catalog/rolls:
 arrres[ arr[0] ][1] = [ arr[0] ][1] + arr[1];
 called from line 1, column 11 in <anonymous function>(event) in http://test1.ru/catalog/rolls:
 setAddBasketProduct(2, 1, 500)
И почему-то я не попадаею сперва в блок
PHP код:
if(arrresarr[i][0] ] == 'undefined'){
                            
arrresarr[i][0] ] = new Array(arr[i][0],arr[i][1],arr[i][2])
                        } 
Ведь сначало у меня arrres[ arr[0] ] == 'undefined'!!!

на выходе хочу получить массив:
Код:
[1] = [ 
        [0] = 1;
        [1] = 6;// количество товара
        [2] = 10234;// общая цена товара
 ]
Спасибо!

Добавлено через 30 минут
Ну немного починил:
PHP код:
var arr get_cookie("product").split(",");
                var 
arrres = new Array();
                for(var 
0arr.lengthi++){
                    if(
arr[i] != "null"){
                        
arr[i] = arr[i].split("-");
                        if(!
arrresarr[i][0] ]){
                            
arrresarr[i][0] ] = new Array(arr[i][0],arr[i][1],arr[i][2]);
                        }
                        else{
                            
arrresarr[i][0] ][1] = (parseInt(arrresarr[i][0] ][1]) + parseInt(arr[i][1]));
                        }
                    }
                }
            } 
результат уже лучше:
Код:
array(2) { [ 1] => array(3) { [0] => string(2) " 1" [1] => int(3) [2] => string(4) "1120" } [ 2] => array(3) { [0] => string(2) " 2" [1] => int(2) [2] => string(3) "500" } }
Только вот почему-то он арефметику не хочет выполнять: arrres[ arr[i][0] ][1] = (parseInt(arrres[ arr[i][0] ][1]) + parseInt(arr[i][1]));

Последний раз редактировалось Virt; 04.05.2013 в 10:41. Причина: Добавлено сообщение
Virt вне форума Отправить сообщение для Virt с помощью ICQ Отправить сообщение для Virt с помощью Skype™ Ответить с цитированием
Непрочитано 04.05.2013, 10:42   #2
Аватар для gorodetskiy
Олдфаг

По умолчанию Re: Javascript сортировка массива

Цитата:
Сообщение от Virt Посмотреть сообщение
Здравствуйте.

Значение куки:
Свернуть ↑Развернуть ↓
небольшая ошибка

И материал

http://javascript.ru/arithmetic
__________________
СЕО Оптимизация сайтов
gorodetskiy вне форума Ответить с цитированием
Непрочитано 04.05.2013, 10:59   #3
Пользователь

Автор темы (Топик Стартер) Re: Javascript сортировка массива

Цитата:
Сообщение от gorodetskiy Посмотреть сообщение
небольшая ошибка

И материал

http://javascript.ru/arithmetic
Спасибо, не помогло((
PHP код:
if(get_cookie("product") != null){
                var 
arr get_cookie("product").split(",");
                var 
arrres = new Array();
                for(var 
0arr.lengthi++){
                    if(
arr[i] != "null"){
                        
arr[i] = arr[i].split("-");
                        if(!
arrresarr[i][0] ]){
                            
arrresarr[i][0] ] = new Array(arr[i][0], arr[i][1], arr[i][2]);
                        }
                        else{
                            
arrresarr[i][0] ][1] = + arr[i][1];
                        }
                    }
                }
            } 
результат:
Код:
array(1) { [ 1] => array(3) { [0] => string(2) " 1" [1] => int(1) [2] => string(4) "1120" } }
[1] => int(1) - должно быть [1] => int(6)

кука:
Код:
null%2C%201-1-1120%2C%201-1-1120%2C%201-1-1120%2C%201-1-1120%2C%201-1-1120%2C%201-1-1120
Virt вне форума Отправить сообщение для Virt с помощью ICQ Отправить сообщение для Virt с помощью Skype™ Ответить с цитированием
Непрочитано 04.05.2013, 11:06   #4
Аватар для gorodetskiy
Олдфаг

По умолчанию Re: Javascript сортировка массива

Цитата:
Сообщение от Virt Посмотреть сообщение
Спасибо, не помогло((
PHP код:
if(get_cookie("product") != null){
                var 
arr get_cookie("product").split(",");
                var 
arrres = new Array();
                for(var 
0arr.lengthi++){
                    if(
arr[i] != "null"){
                        
arr[i] = arr[i].split("-");
                        if(!
arrresarr[i][0] ]){
                            
arrresarr[i][0] ] = new Array(arr[i][0], arr[i][1], arr[i][2]);
                        }
                        else{
                            
arrresarr[i][0] ][1] = + arr[i][1];
                        }
                    }
                }
            } 
результат:
Код:
array(1) { [ 1] => array(3) { [0] => string(2) " 1" [1] => int(1) [2] => string(4) "1120" } }
[1] => int(1) - должно быть [1] => int(6)

кука:
Код:
null%2C%201-1-1120%2C%201-1-1120%2C%201-1-1120%2C%201-1-1120%2C%201-1-1120%2C%201-1-1120
Откройте ещё раз сайт и посмотрите внимательно синтаксис, первая же ошибка в том, что у вас справа от плюса пробел, которого не должно быть, что бы шло прибавление.

И вообще лучше используйте http://simplehtmldom.sourceforge.net/
__________________
СЕО Оптимизация сайтов
gorodetskiy вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 04.05.2013, 11:08   #5
Пользователь

Автор темы (Топик Стартер) Re: Javascript сортировка массива

цикл проходит 7 раз
PHP код:
arrresarr[i][0] ][1] = arrresarr[i][0] ][1] + arr[i][1]; 
результат: array(1) { [ 1] => array(3) { [0] => string(2) " 1" [1] => string(7) "1111111" [2] => string(4) "1120" } }

Добавлено через 18 минут
Все ясно спасибо.

Последний раз редактировалось Virt; 04.05.2013 в 11:27. Причина: Добавлено сообщение
Virt вне форума Отправить сообщение для Virt с помощью ICQ Отправить сообщение для Virt с помощью Skype™ Ответить с цитированием
Непрочитано 04.05.2013, 13:47   #6
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: Javascript сортировка массива

var array = cookies.split(', ').sort();
var temp = new Array();
 
array.forEach(function(value, key) {
	var item = value.split('-');
	var item_id = item[0];
 
	if (typeof temp[item_id] === 'undefined') {
		temp[item_id] = item;
	}
	else {
		temp[item_id][1] ++;
		temp[item_id][2] = parseInt(temp[item_id][2]) + parseInt(item.pop());
	}
});
Code: Javascript
Цитата:
[1: Array[3], 2: Array[3], 3: Array[3], 4: Array[3]]
1: Array[3]
0: "1"
1: 32
2: 35840
length: 3
__proto__: Array[0]
2: Array[3]
0: "2"
1: 5
2: 2500
length: 3
__proto__: Array[0]
3: Array[3]
0: "3"
1: "1"
2: "700"
length: 3
__proto__: Array[0]
4: Array[3]
0: "4"
1: "1"
2: "850"
length: 3
__proto__: Array[0]
length: 5
__proto__: Array[0]
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Skype API JavaScript [STIGMATED] Курилка / Yak floor 14 05.03.2013 03:57
Интеграция -- JavaScript -> Java ZhukV Lineage II 2 04.05.2011 21:17
Php, java, javascript програмист noith Рынок / Marketplace 4 05.08.2010 11:37


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 09:35. Часовой пояс GMT +3.

Вверх