Как собрать объект из входящих данных

228
09 декабря 2017, 07:21

Всем доброго времени суток! Пытаюсь решить данную задачу уже 4й день (видимо моих знаний js пока еще не хватает)

Итак что мы имеем, есть такой код...

$.ajax({ 
    type: "GET", 
    async: false, 
    url: "cb.xml", 
    dataType: "xml", 
    success: currencyRate 
}); 
 
 
function currencyRate(xml) { 
 
  $(xml).find("Valute").each(function() { 
 
    var currencyID = $(this).attr('ID'); //ID валюты 
    var currencyValue = $(this).find("Value").text().replace(',', '.'); //курс валюты 
 
    console.log(currencyID); 
    console.log(currencyValue); 
 
  }); 
 
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

Код парсит xml файл, (ссылка если что на XML) вытаскивает из него текущий курс валют. Что мне нужно сделать, надо создать объект, по типу...

var currency = { 
        R01775: /*ID валюты*/ '70.3548', /*курс валюты*/ 
        R01760: /*ID валюты*/ '15.0177', /*курс валюты*/ 
        // итд... 
        };

или такой объект CharCode: 'Value'

И дальше уже с этим объектом работать...

Answer 1

Создать объект в коде легко.

var object = {};

Далее поля в объект динамически добавляются так:

object["fieldName"] = value;

так как "fieldName" это любая строчка, то это присвоение легко сделать в цикле.

Например:

for(var i=0;i<5;i++) {
  object["x"+i] = "value:"+i;
}
Answer 2

дак в чем сложность то? вписывайте поля объекта да значения и работайте

var data = '<ValCurs Date="08.12.2017" name="Foreign Currency Market"><Valute ID="R01010"><NumCode>036</NumCode><CharCode>AUD</CharCode><Nominal>1</Nominal><Name>Австралийский доллар</Name><Value>44,6015</Value></Valute><Valute ID="R01020A"><NumCode>944</NumCode><CharCode>AZN</CharCode><Nominal>1</Nominal><Name>Азербайджанский манат</Name><Value>34,8793</Value></Valute></ValCurs>'; 
 
 
 
function currencyRate(xml) { 
  var currency = { }; 
   
  $(xml).find("Valute").each(function() { 
 
    var currencyID = $(this).attr('ID'); //ID валюты 
    var currencyValue = $(this).find("Value").text().replace(',', '.'); //курс валюты 
 
    currency[currencyID] = parseFloat(currencyValue); 
     
 
  }); 
  console.log(currency); 
  return currency; 
}; 
 
currencyRate( $.parseXML(data) );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

READ ALSO
Создание элементов c класcами при помощи Jquery

Создание элементов c класcами при помощи Jquery

Доброго времени сутокЯ полный нуб в JS и всем что с ним связанно

264
Как устроен синтаксис обработчика $(window).on(&#39;scroll&#39;)?

Как устроен синтаксис обработчика $(window).on('scroll')?

1) Есть такая функция c параметром:

241
Недосоздаются ячейки в js

Недосоздаются ячейки в js

Всем приветыЕсть код Кому лень читать их вот ссылка на кодпен с удобным чтением кода https://codepen

249
Как сделать слайдер div блоков на js

Как сделать слайдер div блоков на js

Есть несколько блоков , необходимо что бы они поочередно переключались и присутствовали кнопки кнопки перехода по блокам , те

278