Как сохранить значения в hashmap в javascript - PullRequest
0 голосов
/ 29 апреля 2020

Я анализирую xml файл в javascript и извлекаю все его значения

function loadXMLDoc() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
  myFunction(this);
}
};
xmlhttp.open("GET", "/ccm/rpt/repository /workitem?fields=workitem/projectArea/*", true);
xmlhttp.send();
}

function myFunction(xml) {
var x,y,j, i, xmlDoc, txt,txt1;
xmlDoc = xml.responseXML;
txt = "";
txt1="";
x = xmlDoc.getElementsByTagName("contextId");
for (i = 0; i< x.length; i++) {
txt += x[i].childNodes[0].nodeValue;

}
y = xmlDoc.getElementsByTagName("name");
for (j = 0; i< y.length; j++) {
txt1 += y[j].childNodes[0].nodeValue;
}
}

, и теперь моя цель - сохранить значение имени в качестве ключа и contextId в качестве значения (концепция HashMap ), Так возможно ли добиться того же, Также, пожалуйста, позвольте мне, если мой вопрос звучит неоднозначно. Заранее спасибо!

1 Ответ

1 голос
/ 29 апреля 2020

Вы можете добавить свойства к объектам, как если бы они были хеш-картами, взгляните на этот пример:

var myObj = {prop1: 12};
var propName = "prop2";

myObj[propName] = 10;

console.log(myObj);

Который выдает:

{prop1: 12, prop2: 10}

В вашем примере давайте предположим, что x и у равной длины, то мы можем добавить к объекту в один l oop:

var x,y,j, i, xmlDoc, myHashMap;

xmlDoc = xml.responseXML;
myHashMap = {};

x = xmlDoc.getElementsByTagName("contextId");
y = xmlDoc.getElementsByTagName("name");

for (i = 0; i< x.length; i++) {
  var value = x[i].childNodes[0].nodeValue;
  var key = y[i].childNodes[0].nodeValue;
  myHashMap[key] = value;
}

console.log(myHashMap);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...