Можно как-то изловчиться и сделать ^хеш_A.intersects[хеш_B][$.by_value(true)] - т.е. не по ключам, а по их значениям (если они строки) без foreach / for ?
andylars 10.07.2016 20:28
/ 10.07.2016 21:06
Хочется проверять есть ли общие значения у двух хешей, но не хочется крутить цикл.
Хеши, как правило, вида:
$.0[A] $.1[B]
А значения всегда is string
Или хотя бы какой-то а-дя ^таблица.locate[] только для хеша
Думаю может как-то их можно в один приём в таблицу, потом таблицу развернуть
и значения сделать ключами хеша, а там и intersects уже есть.
Т.е. при сравнении мы можем (хотелось бы) превратить значения в ключи (учитывая что ключи уникальны, т.е. сложатся, что логично), но есть ли ограничения для длины имени ключей, ведь строки могут быть длинными...
Ну или как-то в приём без циклов - превратить это в таблицы вида,
0 1 2
A B C
которые можно потом развернуть (транспорнировать) а там уже есть locate
P.S.: сам пока склоняюсь к тому, что наборы параметров которые требуют сравнения с "разрешенным" набором других параметров - больше не буду хранить в значениях хеша,
а тупо делать булевые ключи
$.allowed_ip[
$.[$ip1](true)
$.[$ip2](true)
$.[$ip3](true)
]
тут и intersect из коробки и add и union.... хотя конечно это извращение...
- Можно как-то изловчиться и сделать ^хеш_A.intersects[хеш_B][$.by_value(true)] - т.е. не по ключам, а по их значениям (если они строки) без foreach / for ?, andylars 10.07.2016 20:28 / 10.07.2016 21:06
- нельзя, Misha v.3 [M] 10.07.2016 23:25
- Ответ, andylars 11.07.2016 17:10
- Ответ, G_Z [M] 10.07.2016 21:40 / 10.07.2016 22:11