Показать сообщение отдельно
  #1 (permalink)  
Старый 07.09.2016, 23:18
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

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

Последний раз редактировалось Bond, 07.09.2016 в 23:24.
Ответить с цитированием