Оригинал статьи опубликован по адресу: http://www.birchlee.com/post/2011/10/19/27.aspx.
В JavaScript часто встречаются пары ключ-значение, которые ранее были реализованы с использованием двумерных массивов. Сегодня мы просто смоделировали класс справки по словарю.
Принцип: создайте объект, содержащий два массива: массив ключей и массив значений, и вызовите метод объекта Array Javascript.
Справочный адрес W3C: http://www.w3school.com.cn/js/jsref_obj_array.asp.
Метод BuildDictionary() используется для создания объекта Dictionary, содержащего два массива.
Метод AddItem вызывает метод push объекта Array JavaScript для добавления ключей и значений в соответствующий массив.
Метод UpdateItem используется для изменения соответствующего значения.
Метод DeleteItem вызывает метод Splice объекта Array JavaScript для удаления элементов. Первый параметр — это индекс удаляемого элемента, а первый параметр представляет число, которое необходимо удалить.
GetKeyStr используется для получения строки после объединения массива Keys.
GetValueStr используется для получения строки после объединения массива Values.
Всего содержит пять методов:
/*Создать словарь*/
функция BuildDictionary() {
Дик = новый объект ();
dic.Keys = новый массив(); // массив ключей
dic.Values = новый массив(); //массив значений
вернуть цифру;
}
/*Добавить ключ, значение*/
функция AddItem(ключ, значение, dic) {
вар keyCount = dic.Keys.length;
если (keyCount > 0) {
вар флаг = правда;
for (var я = 0; я <keyCount; я++) {
if (dic.Keys[i] == ключ) {
флаг = ложь;
перерыв; //Если он существует, не добавляйте его
}
}
если (флаг) {
dic.Keys.push(ключ)
dic.Values.push(значение);
}
}
еще {
dic.Keys.push(ключ)
dic.Values.push(значение);
}
вернуть цифру;
}
/*Изменить ключ, значение*/
функция UpdateItem(ключ, значение, dic) {
вар keyCount = dic.Keys.length;
если (keyCount > 0) {
флаг вар = -1;
for (var я = 0; я <keyCount; я++) {
if (dic.Keys[i] == ключ) {
флаг = я;
перерыв //Находим соответствующий индекс
}
}
если (флаг > -1) {
dic.Keys[флаг] = ключ;
dic.Values[флаг] = значение;
}
вернуть цифру;
}
еще {
вернуть цифру;
}
}
/*Удалить значение ключа*/
функция DeleteItem(ключ, dic) {
вар keyCount = dic.Keys.length;
если (keyCount > 0) {
флаг вар = -1;
for (var я = 0; я <keyCount; я++) {
if (dic.Keys[i] == ключ) {
флаг = я;
перерыв //Находим соответствующий индекс
}
}
если (флаг > -1) {
dic.Keys.splice(флаг,1); //Удалить;
dic.Values.splice(флаг, 1); //Удалить;
}
вернуть цифру;
}
еще {
вернуть цифру;
}
}
/*Получаем строку ключа и объединяем ее с символами*/
функция GetKeyStr (разделитель, dic)
{
вар keyCount = dic.Keys.length;
если (keyCount>0)
{
вернуть dic.Keys.join(разделитель);
}
еще
{
возвращаться '';
}
}
/*Получаем строку значения и объединяем ее с символами*/
функция GetValueStr (разделитель, dic)
{
вар keyCount = dic.Keys.length;
если (keyCount>0)
{
вернуть dic.Values.join(разделитель);
}
еще
{
возвращаться '';
}
}
Использование: Создайте глобальную переменную и управляйте этой глобальной переменной, чтобы использовать ее.
Вот хорошее начало