Моя главная цель - уметь сравнивать конкретные объекты (которые имеют одинаковый тип) по значению, а не по ссылке.Каждое значение в объекте является либо логическим, либо числом, и скорость имеет решающее значение.
Разбивая это немного, я ищу очень быструю функцию, которая выходит из этого объекта в строку или число (т. е. хэш), так что я могу искать сравнения в хэш-таблице.
Я рад, что все запросы на увеличение скорости мне нравятся - он не должен быть автоматическим и нет необходимости проверять какие-либоtypeof
Например:
const foo = {
a: true,
b: {
c: 42
}
d: 3
}
Может быть уменьшено до [1,42,3], и затем это может быть использовано в качестве ключа поиска для объекта, но для преобразованияэтот массив в строку в качестве ключа хеша не будет работать, потому что нет способа отличить его от [1,4,23]
Я пробовал предложения в алгоритме хеширования для логического значения переменного размерамассив , и это прекрасно работает, когда мой объект может поместиться в 32-разрядный массив TypedNumberArray - но как только мне понадобится несколько таких массивов и вызовет для них toString()
, он станет медленным (все же намного быстрее, чем JSON.stringify, однако)
тЯзык arget - это javascript, хотя я рад видеть примеры кода на C или других языках, если это поможет.
Спасибо!