Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.01.2010, 23:51
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Задача для скучающих
Уважаемые любители client-side-программирования, вот вам задачка на смекалку.
alert(+[n[[n][n]]+n[[n]]+n[n+n]+n+++[n]]); // 42

Вопрос: чему же равно n?

Призовой фонд за решение равен нулю в денежном эквиваленте. Ну, могу, разве что, кармой поделиться

UPD: В такой формулировке она, пожалуй, поинтереснее будет

Последний раз редактировалось subzey, 21.01.2010 в 01:48. Причина: UPD
Ответить с цитированием
  #2 (permalink)  
Старый 21.01.2010, 00:40
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Спасибо за интересную задачу
решение отправляю в личку, чтобы не портить остальным удовольствие
Ответить с цитированием
  #3 (permalink)  
Старый 21.01.2010, 02:15
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Читерское решение
var toString = Array.prototype.toString;

var n = {
	toString: function () {
		Array.prototype.toString = arguments.callee;
		return 42;
	}
};

alert(+[n[[n][n]]+n[[n]]+n[n+n]+n+++[n]]);

Array.prototype.toString = toString;


если плюсики подругому пробелами разделить, то можно еще так:
var n = {
	"0": 14,
	toString: function () {
		return 0;
	}
};

alert(+[n[[n][n]] + n[[n]] + n[n+n] + n+ + +[n]]);

Последний раз редактировалось Octane, 21.01.2010 в 02:41.
Ответить с цитированием
  #4 (permalink)  
Старый 21.01.2010, 02:47
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

subzey,
оставил бы и старый вариант также
негоже что только я его увидел.тем более, что предыдущая задача работала и с моим способом, а новая только с твоим))
вот еще одна сложностью чуточку повыше
alert(m[[m]]+(m[eval(m[''+[m],+m]+[m]+m[eval(''+[m],+m)])]+m[+[m]]))//42

и немного усложненое
alert(m[[m]]+(m[eval(m[[m],+m]+[m]+m[eval(m[m[m]]+[m],+m)])]+m[+[m]]))//42

На всякий случай: решения у примеров разные могут быть

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

Последний раз редактировалось Gvozd, 21.01.2010 в 15:46.
Ответить с цитированием
  #5 (permalink)  
Старый 21.01.2010, 13:27
Аватар для zm8
zm8 zm8 вне форума
Новичок на форуме
Отправить личное сообщение для zm8 Посмотреть профиль Найти все сообщения от zm8
 
Регистрация: 04.03.2009
Сообщений: 5

Отличная задачка! Занимательное преобразование типов, так сказать :D

var n = {
val: 1,
toString: function(){
return this.val;
},
valueOf: function(){
return this.val;
},
undefined: 1,
1: 1,
2: 1
};

Как вставить код вместе к кнопочкой "Запустить" не нашёл, код букмарклета бьётся редактором:
javascript:(function(){var n={val:1,toString:function(){return this.val;},valueOf:function(){return this.val;},undefined:1,1:1,2:1};alert(+[n[[n][n]]+n[[n]]+n[n+n]+n+++[n]]);})()

Последний раз редактировалось zm8, 21.01.2010 в 15:39.
Ответить с цитированием
  #6 (permalink)  
Старый 21.01.2010, 15:31
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

zm8,
так держать!

Для исполняемого js используйте такой синтаксис:
[js run]…Ваш код…[/js]

И… не стóит спойлить
Ответить с цитированием
  #7 (permalink)  
Старый 21.01.2010, 15:39
Аватар для zm8
zm8 zm8 вне форума
Новичок на форуме
Отправить личное сообщение для zm8 Посмотреть профиль Найти все сообщения от zm8
 
Регистрация: 04.03.2009
Сообщений: 5

скрыл решение
спасибо за подсказку к исполняемому javascript.
Ответить с цитированием
  #8 (permalink)  
Старый 21.01.2010, 15:46
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

subzey,
попробуешь мои задачки?
Ответить с цитированием
  #9 (permalink)  
Старый 22.01.2010, 17:55
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Gvozd,
ага, на выходных. Пока мне и прикладного яваскрипта хватает
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хочу написать скрипт для прайса Lisenok Общие вопросы Javascript 2 10.04.2016 10:44
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
нужна программа для этого. Чем писать? javascript или php? spam-server Серверные языки и технологии 3 27.08.2009 00:52
Переодическое обновление значений для графика, функция для обновления значений yupa87 Общие вопросы Javascript 0 09.07.2009 14:48