【问题标题】:Use variable from one forEach Method in another在另一个 forEach 方法中使用变量
【发布时间】:2019-08-02 19:42:00
【问题描述】:

我正在尝试在另一个 getJSONforEach 方法中使用一个值。我有什么办法可以做到吗?

JavaScript

$.getJSON(json1, result => {
    result.forEach((elem, i, array) => {
       $('#x').text(elem.x);                            
       $('#y').text(elem.y);
});

$.getJSON(json2, result => {
    result.forEach((elem, i, array) => {
       $('#v').text(elem.v);                            
       $('#pv').text(elem.pv);
});

我想在json2 中使用json1 中的elem.x。我需要能够计算elem.x/elem.v。有什么办法吗?

【问题讨论】:

  • 准确写出你需要的东西
  • @DominikMatis,我需要将elem.x 内部的json1elem.v 内部的json2 分开
  • 在循环的每次迭代中更改相同元素的文本没有意义。你到底想要完成什么?

标签: javascript jquery json function foreach


【解决方案1】:

根据您写的评论,我更喜欢这样做(认为两者的长度相同):

var first, second;
$.when(
    $.getJSON(json1, result => first = result),
    $.getJSON(json2, result => second = result)
).then(function() {
    if (first && second) {
        let results = first.map((item, index) => item.x / second[index].v);
        // do whatever you want
    }
});

【讨论】:

  • 希望这是您想要的,如果是,请将其标记为正确答案:)
  • 也可以$.when($.getJSON(json1Url), $.getJSON(json2Url)).done((first, second)
  • @DominikMatis 我在).then... 收到Uncaught SyntaxError: missing ) after argument list 错误
  • @charlietfl 我从来没有在...完成时使用过。我可以举个例子吗?
  • @noob 这些数组的长度相同吗?语法错误是map(),答案是在second[index].v 之后缺少关闭)
猜你喜欢
  • 2017-02-03
  • 2014-10-13
  • 1970-01-01
  • 2018-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-24
相关资源
最近更新 更多