Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 14.12.2010, 15:50
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

for (key in arr){
        if (key == result4) {
            ...
        }
}

это то же самое, что
if( result4 in arr ){ ... }

только лучше
---
Сообщение от Spelesto
x2 = (((((xxx4 - xxx2) / 2)) + xxx2) - xxx2).toFixed(3)
что за уличная магия?
---
по поводу поиска следующего... задавать такую таблицу, конечно, удобно в виде ассоциативного массива (в js это будет объект). Но следующий элемент искать легче в массиве. Т.е. можно сделать так:
var table = {'0.000': '0.00', '0.008': '0.01', '0.016': '0.02, ...};

var keys = getKeys(table);
var values = getValues(table);
var i1 = keys.indexOf(result4); // !!! рассчитываем на то, что в таблице есть такой y
var x1 = values[i1];
var i2 = i1+1;
var y2 = keys[i2];
var x2 = keys[i2];

function getKeys( o ){
    var r = [];
    for( var k in o )
        r.push( k );
    return r;
}

function getValues( o ){
    var r = [];
    for( var k in o )
        r.push( o[k] );
    return r;
}

---
но на самом деле рассчитывать на определенный порядок обхода объектов на стоит. Это я не подумал. Поэтому лучше сделать так:
var table = [{'y': '0.000', 'x': '0.00'}, {'y': '0.008', 'x': '0.01'}, {'y': '0.016', 'x': '0.02}, ...];

var i1 = getIdxByY(table, result4);
var y1 = table[i1]['y'];
var x1 = table[i1]['x'];
var y2 = table[i1+1]['y'];   // !!! рассчитваем, что следующий существует
var x2 = table[i1+1]['x'];

function getIdxByY( a, y ){
    for( var i=0; i<a.length; i++ ){
        if( a[i]['y'] == y.toFixed(3) )
            return i;
    }
}

---
но помимо всего этого, ты рассчитываешь на то, что твой y есть в таблице. А это только частный случай. И формулы у тебя дальше какие-то странные, но я весьма смутно представляю, что ты делаешь. Но может все же дело не только в том, что ты 0.002 прибавлял...

и добавлю, что функции помогают перенести реализацию в другую часть кода. Т.е. у тебя не будет один большой сложный кусок кода в котором все последовательно происходит, а будет много маленьких и простых - а это намного лучше

и вычисления с выводом мешать не стоит, не надо все превращать в одну большую кучу
Ответить с цитированием
  #32 (permalink)  
Старый 14.12.2010, 20:56
Интересующийся
Отправить личное сообщение для Spelesto Посмотреть профиль Найти все сообщения от Spelesto
 
Регистрация: 09.12.2010
Сообщений: 17

Огромное спасибо за подробный разбор моего гомноКода!
СПАСИБО!!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать, присутствует ли в окне полоса прокрутки или нет? возжаждавший Элементы интерфейса 6 12.03.2010 23:00
Как сделать AJAX-авторизацию на страничке? emerge AJAX и COMET 1 08.03.2010 10:00
Как организовать RichEdit arma Элементы интерфейса 2 18.02.2010 14:57
Работа с данными, введенными в форме Nubi jQuery 5 01.12.2008 16:31
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25