используя две хеш-таблицы для определения сходства в JavaScript - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь использовать хеш-таблицы для сравнения массива моего журнала ниже с моим массивом заметок.Я смотрю на проблему и вижу, что это можно сделать другими способами, но я пытаюсь специально научиться использовать хеш-таблицы.Я хочу посмотреть, есть ли в журнале те же слова, что и в заметках.Моя идея состоит в том, чтобы закончить что-то вроде этого, а затем сравнить их

magazineHash = {
    "cool": 2,
    "needs": 1,
    "some": 1,
    "for": 1,
    "work": 1
}

и то же самое для массива заметок, а затем сравнить частоты (значения) слов

magazine = ["cool", "needs", "some", "for", "work", "cool"];
notes = ["cool", "needs", "for", "cool", "work"]

function reliableNote(magazine, note){

}

Есть так много информации и разнообразия в том, что люди говорят о хеш-таблицах онлайн, я очень запутался!Любая помощь будет потрясающей!

1 Ответ

0 голосов
/ 12 июня 2018

Если вы хотите отобразить array на object/hash table, вы можете использовать функцию reduce:

const magazine = ["cool", "needs", "some", "for", "work", "cool"];
const notes = ["cool", "needs", "for", "cool", "work"]


function mapToHash(arr) {
  return arr.reduce((hash, entry) => ({ ...hash,
    [entry]: hash[entry] ? hash[entry] + 1 : 1
  }), {})
}

console.log(mapToHash(magazine));
console.log(mapToHash(notes));
...