JS Noob: используйте JavaScript для цикла, чтобы сопоставить переменную с базой данных - PullRequest
0 голосов
/ 26 марта 2012

Заголовок объясняет это довольно хорошо, но я пытаюсь построить цикл for, который соответствует переменной (в данном случае, полученной в форме HTML5) значению в ячейке в базе данных с двумя столбцами , Затем я хочу "console.log" значение в соседней ячейке (следующий столбец над).

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

var myDB = {AA:100, BB:50, CC:75, DD:66, EE:40};
function DB(value) {
    return myDB[value];
}
console.log(DB('AA'));

1 Ответ

0 голосов
/ 26 марта 2012

Кажется, что лучшим подходом для этого было бы иметь такую ​​структуру данных:

var myDB = {
    'key1' : 'value1'
}

Это избавило бы от необходимости цикла for, поскольку вы планировали использовать, которыйневероятно неэффективно и позволит вам использовать простую проверку индекса, например, такую:

function getValue( index ) {
    if( typeof myDB[index] == 'undefined' ) return false;
    return myDB[index];
}

Если вам нужен поиск по любому из индексов, вам нужно будет сделать несколько более сложную структуру базы данных (Я предполагаю, что ваша «база данных» на самом деле является просто данными javascript, так как вы хотели console.log данных.

Если вы хотите сделать это в базе данных на стороне сервера и вернуть данные, выМне нужны функциональные возможности AJAX и API на стороне сервера, чтобы отправлять эти запросы ajax и возвращать ваши данные в JSON. Это немного сложнее, чем то, что я только что предложил выше.

Обновление:

Если вы хотите«искать» значения в базе данных и находить соответствующий ключ, вам, вероятно, придется либо запустить цикл for для объекта myDB, либо создать свою базу данных немного по-другомутолько имея отдельный объект для каждого из ключей и один для данных.Примерно так:

var myDB = {
    'key1' : {
        'value1':0,
        'value2':1
     },
    'key2' : {
        'value1':0,
        'value2':1
    },
    'data' : {
        0:'data_for_record_1',
        1:'data_for_record_2'
    }
}

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

function searchDB( index , value ) {
    if( typeof myDB[index][value] == 'undefined' ) return false;
    if( typeof myDB.data[myDB[index][value]] == 'undefined' ) return false;
    return myDB.data[myDB[index][value]];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...