Всем привет!
Есть задачка которую вроде решил но требуется консультация или может исправление велосипеда.
Вопрос вот в чем. Делаю модуль для перевода свойств объекта на Node.js с использованием переводчика Яндекс.API.
Нужно что бы он переводил произвольный объект с переменным количеством и разными именам свойств.
Так как яша переводит или текст или массив решил сделать так - модуль принимает два параметра - объект с пустыми свойствами (он только задает какая должна быть структура) и массив который нужно перевести. Также при использовании этого модуля должно соблюдаться условие что количество свойств объекта должно быть равно длине массива. После перевода записываю массив в объект и возвращаю уже заполненный объект.
Вот псевдокод без Node плюшек
//Задаю структуру объекта который должен возвратить модуль
var myJson = {
myvar: "",
body: "",
text: ""
}
//массив который нужно перевести
var myArr = [
"string-var",
"string-body",
"string-text"
]
//Сам псевдомодуль в виде функции
function translate(arr, obj){
//Сначала перводим arr одним запросом GET с помощью NODE модуля request
//потом переписываем наш объект
var i = 0;
for(key in obj){
obj[key] = arr[i];
i++;
}
return obj;
}
//Тестируем работу
var tr = translate(myArr, myJson);
alert(tr.myvar + "\n" + tr.body + "\n" + tr.text)
Как то так, но есть вопрос - не говнокод ли это? Может лучше было бы передавать в модуль только объект а уже внутри разбирать его на массив, переводить и назад собирать (может быть это даже приоритетный вариант - только сейчас придумал
- но тогда будет слишком много циклов - а сделать все в одном не варинат - слишком много запросов GET будет к яше)? Или может есть другие решения?