Запись массива в объект
Всем привет!
Есть задачка которую вроде решил но требуется консультация или может исправление велосипеда. Вопрос вот в чем. Делаю модуль для перевода свойств объекта на 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 будет к яше)? Или может есть другие решения? |
Хотя если передавать в модуль только объект не будет циклов слишком много - просто вместо одного будет два цикла. Пока что этот вариант более приоритетный потому как текущий - слишком геморно будет использовать этот модуль - придется при вызове формировать и объект и массив и еще следить что бы они были одинаковой длины и не перепутались значения.
|
| Часовой пояс GMT +3, время: 21:58. |