Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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.
Ответить с цитированием
  #2 (permalink)  
Старый 07.09.2016, 23:29
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

Хотя если передавать в модуль только объект не будет циклов слишком много - просто вместо одного будет два цикла. Пока что этот вариант более приоритетный потому как текущий - слишком геморно будет использовать этот модуль - придется при вызове формировать и объект и массив и еще следить что бы они были одинаковой длины и не перепутались значения.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись элементов массива в БД (несколько) espltd AJAX и COMET 4 29.07.2015 13:10
Запись массива в переменную с разделителем. x3zone Events/DOM/Window 5 25.02.2013 10:51
Запись массива в cookie KonstantinK Общие вопросы Javascript 4 19.03.2011 20:30
Динамическое значение (например длину массива) запись в постоянное Vulkan Общие вопросы Javascript 14 17.06.2010 16:13