Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.01.2012, 00:31
Аспирант
Отправить личное сообщение для diagnost Посмотреть профиль Найти все сообщения от diagnost
 
Регистрация: 30.10.2008
Сообщений: 47

<html>
<script>

function Lingvo() {
	var Eng = [];
	var Rus = [];
//	this.count = 0;
	this.Eng = Eng;
	this.Rus = Rus;
	this.AddEng = function (EngWord) {
		Eng.push(EngWord);
//		this.count += 1;
	}
	this.AddRus = function (RusWord) {
		Rus.push(RusWord);
	}
	this.count = function() {
    return Eng.length;
};
}

var LWord = new Lingvo;
LWord.AddEng("father");
LWord.AddRus("папа");
LWord.AddEng("he");
LWord.AddRus("он");
LWord.AddEng("bread");
LWord.AddRus("хлеб");

alert (LWord.count);
</script>
</html>
Ответить с цитированием
  #12 (permalink)  
Старый 03.01.2012, 00:37
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Читайте книги, count в данном коде это же метод
Ответить с цитированием
  #13 (permalink)  
Старый 03.01.2012, 00:40
Аспирант
Отправить личное сообщение для diagnost Посмотреть профиль Найти все сообщения от diagnost
 
Регистрация: 30.10.2008
Сообщений: 47

Это понятно - и про метод, и про полезность книг. Существует ли возможность получить LWord.count в качестве величины?
Ответить с цитированием
  #14 (permalink)  
Старый 03.01.2012, 00:45
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

1-й метод чем не устраивает?
Ответить с цитированием
  #15 (permalink)  
Старый 03.01.2012, 00:50
Аспирант
Отправить личное сообщение для diagnost Посмотреть профиль Найти все сообщения от diagnost
 
Регистрация: 30.10.2008
Сообщений: 47

Много слов в БД, не хотелось бы все время складывать. Хотя понятно, что на быстродействие это не сильно повлияет, но как-то некрасиво выглядит. Хочется элегантности.
Ответить с цитированием
  #16 (permalink)  
Старый 03.01.2012, 01:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Вариант ...
var Lingvo = function () {
        return {
            Eng: [],
            Rus: [],
            count: 0,
            AddEng: function (EngWord) {
                this.count = this.Eng.push(EngWord);

            },
            AddRus: function (RusWord) {
                this.Rus.push(RusWord);
            }
        }
    }

var LWord = Lingvo();
LWord.AddEng("father");
LWord.AddRus("папа");
LWord.AddEng("he");
LWord.AddRus("он");
LWord.AddEng("bread");
LWord.AddRus("хлеб");

alert (LWord.count);
Ответить с цитированием
  #17 (permalink)  
Старый 03.01.2012, 01:06
Аспирант
Отправить личное сообщение для diagnost Посмотреть профиль Найти все сообщения от diagnost
 
Регистрация: 30.10.2008
Сообщений: 47

Вариант элегантней исходного. Если это предел возможного, остановлюсь на этом, хотя все еще присутствует неоднократное вычисление count. Спасибо.
Ответить с цитированием
  #18 (permalink)  
Старый 03.01.2012, 09:19
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от diagnost Посмотреть сообщение
Вариант элегантней исходного. Если это предел возможного, остановлюсь на этом, хотя все еще присутствует неоднократное вычисление count. Спасибо.
твой лучше был
Ответить с цитированием
  #19 (permalink)  
Старый 03.01.2012, 09:53
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Вообще два отдельных массива для того что вы делаете явно очень плохо.
Стоит один раз ошибиться - и всё, писец пришёл.
__________________
29375, 35
Ответить с цитированием
  #20 (permalink)  
Старый 03.01.2012, 11:29
Аспирант
Отправить личное сообщение для diagnost Посмотреть профиль Найти все сообщения от diagnost
 
Регистрация: 30.10.2008
Сообщений: 47

Все дело в многомерных массивах. Объявить многомерный массив один раз, а потом добавлять в него элементы у меня не получилось, как я ни старался.

Если внимательно посмотреть на стандартный алгоритм заполнения двумерного массива, то можно увидеть, что new Array объявляется столько раз, сколько строк. Получается, например, что для десяти строк это будет десять массивов, а не два, как в моем случае. А если строк будет 1000?
Это сказывается на памяти и быстродействии.
Насчет борьбы с ошибками - есть смысл повторять подсчет count во втором массиве и контролировать нулевую разницу.

Последний раз редактировалось diagnost, 03.01.2012 в 11:33.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
splice массива массивов vahrusha Общие вопросы Javascript 9 27.07.2010 15:41
Как проверить название массива? Andrej_2 Общие вопросы Javascript 2 30.06.2010 21:07
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53
вставка элементов массива в текстовую форму по клику olezyk Общие вопросы Javascript 3 21.03.2009 22:01