59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
import yDictionary from '../api/yandex-dictionary';
|
|
|
|
const selectByPos = wordArray => {
|
|
let posSet = new Set();
|
|
let selectedArray = [];
|
|
wordArray.forEach((result, id) => {
|
|
const pos = result.pos;
|
|
if (!posSet.has(pos)) {
|
|
posSet.add(pos);
|
|
selectedArray.push(result);
|
|
}
|
|
});
|
|
return selectedArray;
|
|
};
|
|
|
|
export const compoundWithYDictionary = async (definitionList, word) => {
|
|
try {
|
|
const translations = await yDictionary(word);
|
|
const words = definitionList.words;
|
|
let compounded = [];
|
|
|
|
console.log('YANDEX ', translations);
|
|
console.log('WORDS', definitionList);
|
|
let PoSes = new Set();
|
|
translations.forEach(tr => PoSes.add(tr.pos));
|
|
words.forEach(df => PoSes.add(df.pos));
|
|
|
|
PoSes.forEach(pos => {
|
|
let trs = [];
|
|
translations.forEach(tr => {
|
|
if (tr.pos === pos) {
|
|
tr.tr.forEach(trans => trs.push(trans));
|
|
}
|
|
});
|
|
let definitions = [];
|
|
words.forEach(word => {
|
|
if (word.pos === pos) {
|
|
word.definitions.forEach(w => definitions.push(w));
|
|
}
|
|
});
|
|
// compounded.push({pos, trs, definitions});
|
|
compounded.push({
|
|
pos: pos,
|
|
translates: trs,
|
|
definitions,
|
|
});
|
|
});
|
|
|
|
return {
|
|
word,
|
|
pronunciation: `/${definitionList.pronunciation}/`,
|
|
compounded,
|
|
examples: words.examples,
|
|
};
|
|
} catch (e) {
|
|
console.log('error is HERE', e);
|
|
}
|
|
};
|