Запись массива в объект
Всем привет!
Есть задачка которую вроде решил но требуется консультация или может исправление велосипеда. Вопрос вот в чем. Делаю модуль для перевода свойств объекта на 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, время: 09:14. |