Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Длина массива в объекте (https://javascript.ru/forum/misc/24496-dlina-massiva-v-obekte.html)

Kolyaj 03.01.2012 20:41

8-е сообщение в этой теме.

diagnost 03.01.2012 20:42

Дело в том, что count вычисляется до присвоения элементов массиву.

Livaanderiamarum 03.01.2012 20:42

Цитата:

Сообщение от diagnost (Сообщение 147878)
Kolyaj, вот не получается у меня. Может, у Вас получится? Попробуйте.

ну не получается у него ребят, ну пусть учебник по читает и научится а потом и разберется.

Livaanderiamarum 03.01.2012 20:43

diagnost, реально достал, тебе советуют нормальные варианты а ты хуйню просишь ну так получай!

Kolyaj 03.01.2012 20:44

Если count будет функцией, то её не надо будет вычислять, она будет вычислять.

diagnost 03.01.2012 20:45

А попробуйте 8-е сообщение внедрить, получите в ответ 9-е сообщение.
Livaanderiamarum, подобную рекомендацию я уже слышал в этой теме. Хотелось бы конкретики - есть способ или нет?

diagnost 03.01.2012 20:46

Пока все, что я получил - или суммирование, или нахождение count не внутри Lingvo, а через операции с LWord.

Livaanderiamarum 03.01.2012 20:46

function Lingvo() {
	this.Eng = [];
	this.Rus = [];
	this.Add = function (EngWord, RusWord) {
			this.Eng.push(EngWord); //суешь туда
			this.Rus.push(RusWord); //суешь сюда
	}
	this.count = function(){ //функция count  посчитает количество слов в словаре лишь единожды, при вызове
		return this.Eng.length
	};
}

var LWord = new Lingvo;

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

alert (LWord.count() /*считаем количество слов! При этом после count пишем СКОБОЧЕЧКИ чтобы вызвать функцию пересчета*/ );
alert (LWord.Eng[1]);
alert (LWord.Rus[1]);


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

Kolyaj 03.01.2012 20:49

Цитата:

Сообщение от diagnost
А попробуйте 8-е сообщение внедрить, получите в ответ 9-е сообщение.

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

diagnost 03.01.2012 20:51

Да, всем спасибо. Признаю свою вину, меру, степень, глубину. Я действительно вызывал функцию без скобок.

Livaanderiamarum 03.01.2012 20:51

Цитата:

Сообщение от Kolyaj (Сообщение 147888)
Функции вызываются с помощью круглых скобок. Если их не вызывать, они не будут ничего делать.

человеку ссылки на учебник надо давать а не готовые решения сувать) он элементарных вещей не знает естественно он ни чего не поймет))) он даже не знал как функции вызывать а такие вопросы задает) при чем сам не понимает ЗАЧЕМ ему надо чтобы было именно так))

Livaanderiamarum 03.01.2012 20:54

ОП к тебе вопрос, а зачем тебе надо чтобы один раз считалось в конце)? Ответь ка пожалуйста)? ЗАЧЕМ)? для чего)?

diagnost 03.01.2012 21:00

Затем, что я постараюсь передать массив в JS из БД целиком, а не поэлементно

Livaanderiamarum 03.01.2012 21:05

Цитата:

Сообщение от diagnost (Сообщение 147892)
Затем, что я постараюсь передать массив в JS из БД целиком, а не поэлементно

и куда в js ты его передашь и засунешь и что с ним будешь делать?

diagnost 03.01.2012 21:10

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

Livaanderiamarum 03.01.2012 21:17

Цитата:

Сообщение от diagnost (Сообщение 147894)
Если я передам массив целиком, суммирование работать не будет - надо определять count через функцию. Если передавать значения только поэлементно, то Ваш способ - лучший из всех предлагавщихся, бесспорно. Если поэлементно добавлять после передачи целиком, то count будет вычисляться неверно. Надо будет переназначать count после передачи массива целиком. Так зачем усложненное нахождение count, когда можно обойтись одной единственной функцией?

дело в том что для получения длинны словаря загруженного из БД в JS тебе не нужна ни какая функция. длинна словаря уже лежит в
LWord.Eng.length можешь брать её от туда без всякой функции )))))

ты наверное ни хрена не поймешь, но когда ты получить данные с серва и засунешь их куда нить в скрипт то конструктор массивов автоматически посчитает свойство length )))

Livaanderiamarum 03.01.2012 21:20

Цитата:

Сообщение от Livaanderiamarum
Если передавать значения только поэлементно, то Ваш способ - лучший из всех предлагавщихся, бесспорно.

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

diagnost 03.01.2012 21:22

Можно и так. После загрузки массива целиком сделать this.count = this.Eng.lengh, согласен.

Livaanderiamarum 03.01.2012 21:27

Цитата:

Сообщение от diagnost (Сообщение 147899)
Можно и так. После загрузки массива целиком сделать this.count = this.Eng.lengh, согласен.

Ты знал это ДО того как пост создал)?


Часовой пояс GMT +3, время: 03:59.