Добавить свойство в класс, чтобы выполнялось условие i++ === ++i

class AmazingClass {
  someName = value;
}

let inst = new AmazingClass();
let f = String.fromCharCode(0b10);
console.log(inst[f]++ === ++inst[f] && inst[f] - 1 === inst[f] / 15);

Всем привет!
Нужно заменить someName и value, чтобы выполнилось условие в консоли.

я дошел до такого:

class AmazingClass {
  "" = Infinity;
}

но не могу подобрать подходящее значение, вообще идеи закончились, может у вас есть?

Во-первых. Это упражнение ужасно если смотреть с точки зрения инженера-программиста. Никто не моделирует классы так чтобы они удовлетворяли подобным условиям. Этот код-задача больше подходит как хитрый вопрос про особенности работы языка JS.

Ответ

class AmazingClass {
  [String.fromCharCode(0b10)] = Infinity;
}

let inst = new AmazingClass();
let f = String.fromCharCode(0b10);
console.log(inst[f]++ === ++inst[f] && inst[f] - 1 === inst[f] / 15);

это и есть хитрый вопрос с теста пикабу:
Тест
Решил для себя пройти, пробовал с бесконечностью, не проходит тест.

Кроме бесконечности нужно использовать “правильный” пробельный символ. Просто пробела может быть недостаточно.

Мой код работате как нужно в консоли. Покажи скришнот “упавшего” ассерта.

Все, я понял:
\s = Infinity
Блин, вчера целый день игрался, и понимал, что только Infinity такое условие удовлетворит, но до символа не додумался, спасибо!

История в том что пробельны и “пустых” символов много типов. И их можно генерировать используя коды этих символов.

засветилось зеленым, потом опять красным, все-таки что-то не так, \s тоже не работает.

Пробовал вместо " " делать [String.fromCharCode(0b10)] как в моем коде?

да, в любом случае там

Не допускается ответ в виде вызова функции
["\u0002"] = Infinity;

вот)
10 в десятичной системе - 2

1 лайк