23.11.2011, 22:13
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
рони, ваш "вариант" ушёл в бесконечный цикл и повесил ff. Проверять надо же...
|
|
23.11.2011, 22:25
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
trikadin,
Поверьте ещё раз ... если интересно )))
|
|
23.11.2011, 22:43
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
рони, нормально. Что-то поменяли?
|
|
23.11.2011, 22:59
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Сообщение от рони
|
Поверьте ещё раз ... если интересно
|
А я нажал в Опере и ничего не дождался...
P.S.
Правда и мой вариант так же не запустился... Хотя на работе все показывало нормально.
|
|
23.11.2011, 23:02
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от рони
|
return function (f, a) {
var c, a = a || 0, d;
!b[a] && (b[a] = []);
for (d in f) if (b[a].push(d) && (c = f[d])&& typeof c=='object') {
var g = {}, e;
for (e in c) g[e] = c[e];
|
вы всегда с такими именами переменных (a,b,c,d,e,f..) и такой кашей пишете? (я о использовании && вместо if(){} и т.д.)
|
|
23.11.2011, 23:21
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
ksa,
В опере тоже всё должно работать ...
melky,
Я по разному пишу ... но чаще так )))
|
|
24.11.2011, 09:18
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Сообщение от рони
|
В опере тоже всё должно работать ...
|
На работе таки работает.
Вот только что за нули в самой последней строке? Автор такого вроде не заказывал...
|
|
24.11.2011, 12:53
|
Интересующийся
|
|
Регистрация: 19.11.2011
Сообщений: 11
|
|
Сообщение от Aetae
|
Ив вообще, скжите для чего вы хотите это использовать и мы предложим вам подходящие варианты.
|
Использовать хочу в интернет магазине. Продукция сложная и имеет много модификаций.
Вот пример на сайте http://en-i.ru/product-catalog/energ...ies/Pulse_BPI/ (форму можно посмотреть нажав на кнопку "Подобрать Импульсные БПИ)"
Тут как раз описаны БПИ. Но некоторая продукция имеет более сложную конфигурацию и кол-во модификаций может достигать 2000 с лишним. Для этого я хочу избавиться от нынешней формы подбора продукции и сделать так, чтобы пользователь просто выбрал нужную ему конфигурацию и нажал кнопку "Купить". При этом, выбирая определённые характеристики товара должна проходить проверка остальных характеристик и некоторые из них должны становиться некликабельными (именно те которые несовместимы с уже выбранными).
Пример того, что я хочу получить можно посмотреть здесь: http://quto.ru/BMW/1series/E81_E82_E87_E88/hatchback3d/ Там при подборе комплектации автомобиля (например при выборе объема двигателя 3л.) затемняются лишние характеристики и дизельный двигатель уже нельзя выбрать. Что то вроде этого я и хочу сделать для своего сайта.
|
|
24.11.2011, 13:04
|
Интересующийся
|
|
Регистрация: 19.11.2011
Сообщений: 11
|
|
Сообщение от ksa
|
Если я таки правильно понял проблемку - такой вот вариант например...
var config = {
"БПИ": {
"30": {
"12": [ "2,5" ],
"24": [ "1,25" ],
"48": [ "0,65" ]
},
"60": {
"12": [ "5,0" ],
"24": [ "2,5" ],
"36": [ "1,5" ],
"48": [ "1,25" ]
},
"125": {
"12": [ "10" ],
"24": [ "5" ],
"48": [ "2,5" ]
},
"250": {
"12": [ "20,0" ],
"24": [ "10,0" ],
"48": [ "5,0" ]
}
}
};
var a=[],b,c;
var i,j,k;
for(i in config) {
a[a.length]=new Array(i);
b=[];
c=[];
for( j in config[i]) {
b[b.length]=j;
for( k in config[i][j]) {
c[c.length]=k;
};
};
a[a.length]=b;
a[a.length]=c;
};
for (var i=0; i<a.length; i++) {
alert('a['+i+'] = '+a[i]);
}
|
Да, тут близко к тому что я хотел, но у массива config вложенность может быть ещё больше, например вот такой:
var config = {
"БПИ": {
"30": {
"12": {
"2,5": {
"да": [ "1,2", "3" ],
"нет": [ "1" ]
}
},
"24": [ "1,25" ],
"48": [ "0,65" ]
},
"60": {
"12": [ "5,0" ],
"24": [ "2,5" ],
"36": [ "1,5" ],
"48": [ "1,25" ]
},
"125": {
"12": [ "10" ],
"24": [ "5" ],
"48": [ "2,5" ]
},
"250": {
"12": [ "20,0" ],
"24": [ "10,0" ],
"48": [ "5,0" ]
}
}
};
|
|
24.11.2011, 13:07
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Сообщение от cbone
|
но у массива config вложенность может быть ещё больше,
|
Тогда есть два путя...
3. Добавлять циклов и временных массивов до нужного количества уровней...
2. Таки делать рекурсию.
|
|
|
|