Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 03.01.2012, 12:49
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Сообщение от diagnost Посмотреть сообщение
Это сказывается на памяти и быстродействии.
Крайне несущественно.

Сообщение от diagnost Посмотреть сообщение
Все дело в многомерных массивах. Объявить многомерный массив один раз, а потом добавлять в него элементы у меня не получилось, как я ни старался.
Если очень хочется можно использовать 1 массив, какие проблемы, но добавлять в него всё равно одной функцией, чтоб не было простора для ошибки.

var Lingvo = function () {
        return {
            Eng: [],
            count: 0,
            Add: function (EngWord,RusWord) {
                this.count = this.Eng.push(EngWord,RusWord)/2;
            }
        }
    }

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

alert (LWord.count);
__________________
29375, 35

Последний раз редактировалось Aetae, 03.01.2012 в 12:54.
Ответить с цитированием
  #22 (permalink)  
Старый 03.01.2012, 15:11
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

что должно лежать в Lingvo.count, длинна всех массивов, или длинна русского массива?
Ответить с цитированием
  #23 (permalink)  
Старый 03.01.2012, 18:16
Аспирант
Отправить личное сообщение для diagnost Посмотреть профиль Найти все сообщения от diagnost
 
Регистрация: 30.10.2008
Сообщений: 47

длины русского и английского массивов одинаковы. count хранит длину любого из них. На данный момент вот такой вариант:
<script>
function Lingvo() {
	this.count = 0;
	this.Eng = [];
	this.Rus = [];
	this.Add = function (EngWord, RusWord) {
			this.Eng.push(EngWord);
			this.Rus.push(RusWord);
			this.count =+ 1;
	}
}

var LWord = new Lingvo;

LWord.Add("father", "папа");
LWord.Add("he", "он");
LWord.Add("bread", "хлеб");
LWord.Add("I", "я");

alert (LWord.count);
alert (LWord.Eng[1]);
alert (LWord.Rus[1]);
</script>


Так можно как-нибудь уйти от суммирования или возврата из push? Найти count за один раз? Или это невозможно?

Последний раз редактировалось diagnost, 03.01.2012 в 18:20.
Ответить с цитированием
  #24 (permalink)  
Старый 03.01.2012, 18:37
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Я ОДИН ТУТ ВООБЩЕ НЕ ПОНИМАЮ В ЧЕМ ЕГО ПРОБЛЕМА?

Последний раз редактировалось Livaanderiamarum, 03.01.2012 в 18:44.
Ответить с цитированием
  #25 (permalink)  
Старый 03.01.2012, 18:40
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Я ВООБЩЕ НЕ ПОНИМАЮ О ЧЕМ ТУТ МОЖНО ГОВОРИТЬ !!! О____________________О

function Lingvo() {
	this.Eng = [];
	this.Rus = [];
	this.Add = function (EngWord, RusWord) {
			this.Eng.push(EngWord); //суешь туда
			this.Rus.push(RusWord); //суешь сюда
			//кладешь в свойство count  ссылку на длину одного из массивов создаваемого объекта.
			this.count = this.Eng.length;
	}
}

var LWord = new Lingvo;

LWord.Add("father", "папа");
LWord.Add("he", "он");
LWord.Add("bread", "хлеб");
LWord.Add("I", "я");

alert (LWord.count);
alert (LWord.Eng[1]);
alert (LWord.Rus[1]);


каждый раз ссылку нужно перезасовывать потому что метод push переписывает свойство this.count тупо числом!! Можно заменить метод push другим чтобы не переписывал числом, надо?

Последний раз редактировалось Livaanderiamarum, 03.01.2012 в 18:48.
Ответить с цитированием
  #26 (permalink)  
Старый 03.01.2012, 18:53
Аспирант
Отправить личное сообщение для diagnost Посмотреть профиль Найти все сообщения от diagnost
 
Регистрация: 30.10.2008
Сообщений: 47

Тут главное выражение: "каждый раз". Я с первого поста спрашивал, как сделать так, чтобы не было "каждый раз", а был только один раз в момент вызова LWord.count
Ответить с цитированием
  #27 (permalink)  
Старый 03.01.2012, 19:00
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от diagnost Посмотреть сообщение
Тут главное выражение: "каждый раз". Я с первого поста спрашивал, как сделать так, чтобы не было "каждый раз", а был только один раз в момент вызова LWord.count
ты знаешь как метод push работает? что он КАЖДЫЙ РАЗ засовывает элемент в конец массива, КАЖЫДЙ Раз измеряет длинну и перезаписывает её. КАЖДЫЙ РАЗ. мало того ты используешь этот метод 2 раза за добавление!!!!!
Ответить с цитированием
  #28 (permalink)  
Старый 03.01.2012, 19:03
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

function Lingvo() {
	this.count = 0;
	this.Eng = [];
	this.Rus = [];
	this.Add = function (EngWord, RusWord) {
			this.Eng[this.count] = EngWord; //суешь туда
			this.Rus[this.count] = RusWord; //суешь сюда
			this.count ++;//прибавляешь длинну
	}
}

var LWord = new Lingvo;

LWord.Add("father", "папа");
LWord.Add("he", "он");
LWord.Add("bread", "хлеб");
LWord.Add("I", "я");

alert (LWord.count);
alert (LWord.Eng[1]);
alert (LWord.Rus[1]);


теперь за место 3 операций происходит одна. прибавление длинны при добавлении слова с переводом.
спасибо - пожалуйста

Последний раз редактировалось Livaanderiamarum, 03.01.2012 в 19:06.
Ответить с цитированием
  #29 (permalink)  
Старый 03.01.2012, 19:08
Аспирант
Отправить личное сообщение для diagnost Посмотреть профиль Найти все сообщения от diagnost
 
Регистрация: 30.10.2008
Сообщений: 47

Дело не в push, это промежуточный вариант скрипта. Потом все перепишется и я постараюсь целиком сразу получить массив из БД.
Дело в теории вопроса. Можно ли или нет получить count за один раз. Да или нет. Если да, то как? За улучшение спасибо.
Ответить с цитированием
  #30 (permalink)  
Старый 03.01.2012, 19:10
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от diagnost
Дело в теории вопроса. Можно ли или нет получить count за один раз.
НЕТ! каунт нельзя получить один раз и на всегда потому что он каждый раз изменяется с добавлением новых слов. Ответил на вопрос?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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