【问题标题】:Reading and then using an array from a web source in Javascript从 Javascript 中的 Web 源读取然后使用数组
【发布时间】:2020-01-21 10:57:25
【问题描述】:

通过以下方式获取网页源:

$.ajax({ url: 'your-url', success: function(data) { ...my commands... } });

“数据”在其文本中的某处有一个数组,例如:

var MyArray=[1, 2, 3];

我的问题是我应该如何从数据中读取“MyArray”及其元素并将其设置为数组? “MyArray”中的数字可以是任何数字,但网页总是有“var MyArray=[#1,...,#N];”在它的源头的某个地方。

【问题讨论】:

  • 你能分享data变量的输出吗?
  • 避免使用不可预知的响应,因为它们总有一天会破坏应用程序。你打电话给什么样的服务?
  • 这是一个很长的html!您可以使用以下 URL 来获取它:'tsetmc.com/…',我感兴趣的是它末尾的数组之一。 @EmielZuurbier
  • 抱歉,我无法理解您所说的“服务”是什么意思? @briosheje
  • @SamYahaghi 我检查了你的链接。您应该以另一种方式执行此操作。 HTML 没有任何arrays,只有 JavaScript 有这些。您需要以 JSON 的形式获取原始数据。我认为这就是 briosheje 所说的“服务”。从中获取数据的服务。网站中使用的相同数据。也许他们有一个 API。这似乎值得一试。

标签: javascript html arrays ajax


【解决方案1】:

TLDR:以其他方式做...

除了不这样做的一堆原因(效率、可维护性、“方法的正确性”)之外,您还可以尝试以下方法...

您可以将源解析为文本,执行正则表达式测试以找到与数组声明匹配的内容,然后从那里继续使用正则表达式再次解析文本中定义的数字。

如果您知道您希望读取的数组的名称,那么您可能有机会这样做,否则我建议您不要考虑我上面的建议......

【讨论】:

  • 好吧,如果没有您向我们提供一些您感兴趣的 html 响应,就很难发布一些与您相关的示例,但您可以看看这个 regextester.com/27540 在这个例子中,正则表达式用于解析 html 元素中的一些内容。您必须锻炼自己的正则表达式,以满足您定位所需数组定义并解析其文本的需要
【解决方案2】:

如果你想从数据中获取数组并将其元素移动到另一个数组中:

var inst=data.d;
var myArray=[];
for (var i=0; i<inst.length;i++){
    myArray.push(inst[i]);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-08
    • 2014-10-17
    • 1970-01-01
    • 2017-09-09
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多