javascript - 将数组列表存储在变量中

标签 javascript arrays variables

我试图将数组列表存储在变量中,但不知道如何解决它。

xpath 将返回一个项目列表,并且它可以很好地显示在控制台中。我的问题是我不知道如何将其存储在变量中以便稍后使用该列表。

如果我尝试使用“arrayList”,它只会返回数组中的最后一个项目,但在控制台中它会显示所有项目。

有什么想法吗?

var iterator = document.evaluate('xpathgoeshere', document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);

try {
  var thisNode = iterator.iterateNext();

  while (thisNode) {
    var arrayList = (thisNode.textContent);
    var thisNode = iterator.iterateNext();
    for (var i = 0; i < arrayList.length; i++) {
      console.log(arrayList);
    }
  }
} catch (e) {
  dump('Error: Document tree modified during iteration ' + e);
}

最佳答案

首先,您应该在循环后更新 thisNode,因为 arrayList 面向 thisNode

下一个问题可能是,您将 iterator.iterateNext(); 设置为 while 循环内的新 var thisNode,而不是更新您的 var thisNode 在你的 try block 中。 (因为它前面有 var)

试试这个::)

var iterator = document.evaluate('xpathgoeshere', document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);

try {
  var thisNode = iterator.iterateNext();

  while (thisNode) {
    var arrayList = thisNode.textContent;

    for (var i = 0; i < arrayList.length; i++) {
      console.log(arrayList[i]);
    }    
    thisNode = iterator.iterateNext();
  }
} catch (e) {
  dump('Error: Document tree modified during iteration ' + e);
}

正如 Steven 提到的,thisNode.textContent 是一个字符串。我不知道你的刺痛是什么样子,但也许你必须先 split() 它,或者如果它是一个 JSONstring,你必须使用 JSON.parse(),获取你的数组。

<小时/>

但是,如果您的 thisNode.textContext 应该是数组的项目,请尝试以下操作:

var iterator = document.evaluate('xpathgoeshere', document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);

try {
  var thisNode = iterator.iterateNext();
  var arrayList = [];

  while (thisNode) {
    arrayList.push(thisNode.textContent); 
    thisNode = iterator.iterateNext();
  }

  console.log(arrayList);

  for (var i = 0; i < arrayList.length; i++) {
    console.log(arrayList[i]);
  }   
} catch (e) {
  dump('Error: Document tree modified during iteration ' + e);
}

关于javascript - 将数组列表存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53593172/

相关文章:

javascript - 如何使用 AngularFire2 和 Firebase 连接两个节点?

javascript - 在 Internet Explorer 中调试内存泄漏

php - 函数数组

javascript - 组合 redux reducer 而不添加嵌套

javascript - 如何在django中删除多个delete

Ruby 从多维数组中删除值

c# - 在 C# 中引用数组的一部分

javascript - 将变量从 JSP 传递到 Javascript

java - 避免初始化变量以使代码仍然有效

ios - 私有(private)变量是否需要声明属性?