Псевдоним
const alias = (list = []) => list.reduce((group, alias, index, aliases) => ({
...group,
[alias]: aliases,
}), {});
Словарь
const dictionary = (...lists) => lists.reduce((dictionary, list) => ({
...dictionary,
...alias(list),
}), {});
Орудие
dictionary(
["hello", "hi", "hey", "yo"],
["goodbye", "by", "bye", "piece"]
);
Вывод
{
"hello": [
"hello",
"hi",
"hey",
"yo"
],
"hi": [
"hello",
"hi",
"hey",
"yo"
],
"hey": [
"hello",
"hi",
"hey",
"yo"
],
"yo": [
"hello",
"hi",
"hey",
"yo"
],
"goodbye": [
"goodbye",
"by",
"bye",
"piece"
],
"by": [
"goodbye",
"by",
"bye",
"piece"
],
"bye": [
"goodbye",
"by",
"bye",
"piece"
],
"piece": [
"goodbye",
"by",
"bye",
"piece"
]
}
Проблемы времени У вас должен быть довольно большой список или приложение, которое действительно заботится о скорости для этого объема обработки, чтобы оказывают какое-либо заметное негативное влияние на ваше приложение.
При этом, если ваш словарь становится достаточно большим, чтобы повлиять на остальную часть вашего приложения, вы можете запустить эти функции и скопировать вывод, чтобы вы не разрешали вывод во время выполнения.