Igor
Больше на пхп похоже если что)
Igor
Но идея да такая
Rodion
Больше на пхп похоже если что)
Нет, это объект, а не ассоциативный массив (в JS их нет)
Igor
Нет, это объект, а не ассоциативный массив (в JS их нет)
В js их есть уже сто лет, но и использование объекта как асоциативного массива прижилось Пысы я больше про имена с долларами
Rodion
В js их есть уже сто лет, но и использование объекта как асоциативного массива прижилось Пысы я больше про имена с долларами
К тому же нужно использовать lowercase для строки. Если я написал "Ножницы" оно работать не будет
Igor
Нет, это объект. Это понятно из того, что используется {} а не []
Родион я не знаю о чем вы там с чатгпт договорились ... но ты несешь полную дичь
Rodion
И как понять кто выиграл? Бумага или ножницы?
$arr["бумага"]["ножницы"] === false (проиграл)
Rodion
А зачем $?
Исправил на const
Rodion
Но и JS тоже
Igor
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map а это ассоциативный массив которого нет ... жаль конечно такая нужная структура ;(
Leonid
Исправил на const
Не-не-не, зачем ты её писал? :) Может так удобнее видеть, что это переменная/массив/объект?
Igor
про большие маленькие буквы я тебе привел выше скрин.... про ассоциативный массив предыдущее сообщение
Rodion
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map а это ассоциативный массив которого нет ... жаль конечно такая нужная структура ;(
The Map object holds key-value pairs and remembers the original insertion order of the keys. Any value (both objects and primitive values) may be used as either a key or a value.
Rodion
Я про это)
Пардон
Rodion
и зачем ты это копируешь?
Там написано, что это объект
Leonid
$arr = array( "one" => "first", "two" => "second" );
Atstec
Работаю с пандасом, нужно рассчитать новый столбец по формуле SMT(i)-SMT(i-1) где SMT название столбца из дата фрейма Я не понимаю как обращаться к предыдущей строке Понимаю что можно в лоб в цикле, но полагаю есть какой-то специальный метод
Rodion
$arr = array( "one" => "first", "two" => "second" );
Ну это пхп ассоциативный массив, а мы про js говорили. Он мне доказывал, что Map в js это ассоциативный массив
Rodion
Родион я уже с тобой все понял ;) я тебе уже ничего не доказываю ;)
Я написал "доказывал" (прошедшее время если что)
Igor
Я написал "доказывал" (прошедшее время если что)
я тебе ничего не доказывал ... я тебе дал ссылку на ассоциативный массив "которого нет" ... но ты даже доку не смог прочитать.
Leonid
Ну это пхп ассоциативный массив, а мы про js говорили. Он мне доказывал, что Map в js это ассоциативный массив
Я вообще просто вспомнил как ассоциативный массив пишется, по синтаксису :)
Rodion
Я вообще просто вспомнил как ассоциативный массив пишется, по синтаксису :)
Ну можно использовать [] $arr = [ "one" => "first", "two" => "second" ];
Rodion
Там же в самом начале написано Объект Map ... Да, свойствами он похож на ассоциативный массив, но от этого он не перестает быть Map Object который создаётся благодаря классу Map Если хочешь не отвечай
Leonid
Правда не знаю. Синтаксис позволяет и так визуально удобнее?
Igor
Там же в самом начале написано Объект Map ... Да, свойствами он похож на ассоциативный массив, но от этого он не перестает быть Map Object который создаётся благодаря классу Map Если хочешь не отвечай
там object с маленькой буквы ... свойствами похож на ассоциативный массив вообще смешная формулировка ;) А что это должно быть как не объект ... или в твоем понимании ассоциативный массив это примитивный тип? ;)
Rodion
Не-не-не, зачем ты её писал? :) Может так удобнее видеть, что это переменная/массив/объект?
Ну правила хорошего тона. Массив можно менять (добавлять изменять внутри), но нельзя переписать на другую переменную. Только если ты знаешь, что нужно изменять переменную используют let или var
Igor
Не бойся прочитай чуть больше чем первую строчку Therefore, it could be represented internally as a hash table (with O(1) lookup), a search tree (with O(log(N)) lookup), or any other data structure, as long as the complexity is better than O(N). https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#objects_vs._maps
Igor
ты не пробиваемый я понял
Igor
есть разница пихать ключи в проперти объекта или пихать ключи в мап ...
Rodion
есть разница пихать ключи в проперти объекта или пихать ключи в мап ...
Да, согласен Одно другому не мешает. Блин, я так угараю. Я говорю о том, что в JS просто нет такого типа данных Считаю вопрос закрытым, я всё понял То что крякает и выглядит как утка - утка (логика понятна)
Igor
отсутствие ассоциативного массива и Map это object вообще две не бьющиеся вещи ...
Igor
Map это встроенная структура ... это не просто object.
J
Камень ножницы бумага раз два три
J
🪨
Igor
https://habr.com/ru/company/ruvds/blog/518032/ Реализация структуры данных Map в V8 написана на C++, после чего JS-коду дан доступ к соответствующим механизмам.
Руслан
🪨
🧻
J
я проиграл
Igor
я проиграл
это уже ооп подход ;) ...
Rodion
Map это встроенная структура ... это не просто object.
Понял понял. Это косяк typeof у JS. У него и обычные массивы это объекты Я согласен что был неправ, я могу принимать ошибки
Igor
ну и раз уж я победил ... позвольте вас попинать ногами ... ассоциативный массив это концепция ... как она реализованна монопенисуально или однохуйственно. Когда говорят используй ассоциативный массив это значит ну кароче возьми какую нибудь хрень которая умеет в кейвэлью ...
iren
Напишите уже как будет с этой концепцией выглядеть решение, интересно же
Igor
Напишите уже как будет с этой концепцией выглядеть решение, интересно же
Ассоциативный массив мне впадлу расписывать ... проще обычным import random figures = "Камень", "Ножницы","Бумага" rules = [[0, 1, -1], [-1, 0, 1], [1, -1, 0]] results ={1: "Победа",-1:"Поражение", 0:"Ничья"} user = input() comp = random.choice(figures) print(comp) ui = figures.index(user) ci = figures.index(comp) print(results[rules[ui][ci]]) без обработки корректности ввода юзера ...
Igor
в правилах ... первый массив это результат если юзер выбрал камень второй ножницы 3 бумагу ... соответсвенно в каждом массиве это результат если комп выбрал камень нужницы или бумагу ...
Igor
можно rules задать через вращение массива но это уже перебор ;) либо через сложение по модулю.
Igor
типа такого import random figures = "Камень", "Ножницы","Бумага" results = ["Ничья", "Победа", "Поражение"] user = input() comp = random.choice(figures) print(comp) ui = figures.index(user) ci = figures.index(comp) print(results[(ci - ui) % 3])
Igor
Разные решения само собой имеют свои плюсы и минусы.
Rodion
Напишите уже как будет с этой концепцией выглядеть решение, интересно же
Ну это жесть. Лучше или обычный массив использовать или объект (в JS) const ass = new Map([ ["ножницы", new Map([ ["бумага", true], ["камень", false], ])], ["бумага", new Map([ ["ножницы", true], ["камень", false], ])], ["камень", new Map([ ["бумага", false], ["ножницы", true], ])], ]); console.log(ass.get("ножницы").get("бумага")) Ну или стилистически можно так сделать: const ass = new Map([ [ "ножницы", new Map([ ["бумага", true], ["камень", false], ]), ], [ "бумага", new Map([ ["ножницы", true], ["камень", false], ]), ], [ "камень", new Map([ ["бумага", false], ["ножницы", true], ]), ], ]);
Igor
это все хорошо ... но у тебя только правила (даже не полные заняли кучу места) а еще нужно обрабатывать ввод пользователя и что то решать с ничьей ;)
J
Ничьи не бывает ,только победа!
Igor
Тут вопрос у кого на тетрадке какая таблица умножения в детсве была ;)
Igor
вс
Igor
все что описанно в документации это нормально ;)
Igor
расположим на кругу три фигуры ... если противник выбрал фигуру слева ты проиграл есл исправа выиграл если ту же то ничья разница это позиция относительно тебя 0 одинаковые 1 победа 2 (-1) поражение.
Igor
Igor
см картинку спанч боба ;) ...
Rodion
см картинку спанч боба ;) ...
Понял, в питоне можно писать отрицательные индексы
Руслан
на js можно тг бота написать?
Igor
тут вопрос в каком языке ... но в питоне даж тут перестраховочка ;) во первых в питоне разрешена отрицательная нумерация ... Но дело даже не в этом ... модуль в питоне всегда дает число от 0 до n-1
Azamat
на js можно тг бота написать?
на чем угодно можно, телеграм апи в помощь
Руслан
на чем угодно можно, телеграм апи в помощь
просто чтоб страницу вечно открытой не держать, а он работал
Rodion
на чем угодно можно, телеграм апи в помощь
js запускается в браузере, node js на сервере