【问题标题】:Javascript outputting array valuesJavascript输出数组值
【发布时间】:2021-06-16 07:22:15
【问题描述】:

无法真正弄清楚为什么我无法在我的 javascript 函数中获取通过 AJAX 调用传递的值。

如图所示,msg 是从后端传递给 javascript 函数的数组 我都试过了

info['taxarray'].forEach() and info.taxarray.forEach() 

Console.log(info.taxarray) 工作正常,它在控制台中输出数组,但是当我尝试通过这个数组运行迭代时,我无法访问其中的值,我确定我是遗漏了一些东西,但我无法弄清楚它是什么。

这是控制台的输出

【问题讨论】:

  • 您尝试过什么调试问题?请以文本形式分享所有信息。另外,请解释这与 PHP 有什么关系
  • info.taxarray.forEach(taxArr => { taxArr.forEach(tax=> console.log(tax.tax_values)) })。 taxarray 是 sohaieb 所说的数组数组。
  • 请避免使用代码图片。它们不能被复制粘贴。请改用代码格式。

标签: javascript arrays ajax


【解决方案1】:

您可以使用flat 方法展平多维数组:

info.flat().forEach(item => console.log(item.tax))

使用flatmap 会更直接

info.flatMap(item => console.log(item.tax))

【讨论】:

【解决方案2】:

如我所见,您的info.taxarray 是一个多维数组,因此其中的每个元素也是一个另一个数组。 你的console.log(info.taxarray) 给了看:

[Array(1), Array(1)]

要访问第一个元素的 tax_values,您必须编写 info.taxarray[0][0].tax_values,这意味着您必须迭代 taxarray 及其元素(也是数组) .
检查你的代码。 也可以参考the solution of Mike Ezzati 很有帮助

【讨论】:

  • 上帝,这是我犯的一个愚蠢的错误,谢谢!
【解决方案3】:

您得到的响应似乎是多维的(一个数组数组,每个数组只有一个元素)

info.taxarray.forEach(msg) { (item) => {
    console.log(item[0].tax_values)
}};

或者如果数组元素可以更多,那么再次迭代

info.taxarray.forEach(msg) { (item) => {
    item.forEach(msg) { (item) => {
        console.log(i.tax_values)
    }};
}};

【讨论】:

    猜你喜欢
    • 2012-01-05
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 2016-08-15
    相关资源
    最近更新 更多