【问题标题】:Listing data horizontally(in a table) instead of vertically水平(在表格中)而不是垂直列出数据
【发布时间】:2014-12-08 20:16:31
【问题描述】:

我有一个带有数组和字符串的对象:

{
    "result": [
    ],
    "text": "success
}

"result" 包含四个数组和十二个对象

"result": [
    [
        {
        // data
        },
        // eleven more objects
    ],
    // three more arrays
]

整个对象来自一个包含年收入数据的数据库。在十二个对象中的每一个(每个月一个)中都有关于总收入、净收入、支出、储蓄等的数据。每个数组(“结果”数组的直接子数组)都是一年的数组。

我想要完成的是水平列出数据,每个月作为一列,每一行都有一个“标签”作为图例来解释该行包含的内容。

这是我想要的结果。请注意图表如何显示工资每个月都在增加:

我得到了什么。二月的gross 放在一月的net 下,以此类推:

我尝试过嵌套循环,但我很难中断到新行。第一行(总)跨越十二列,并且在每个单元格中输入了正确的数据,但在第一行我得到 12*6 个单元格,第二行 12*5,第三行 12*4 等等。除此之外,我需要循环四年("result"-array 中的每个数组)。

这是我用来构建表格的工具,效果很好:http://jsfiddle.net/w3mktubx/

这是表格循环的完整代码:http://jsfiddle.net/v4vo6zot/1/

我已经尝试过Object.keys(),但在这方面也没有成功。我知道我可以编写 100 多行代码并全部完成,但应该有一个使用循环的解决方案。我也更喜欢使用 JS 制作表格,因为只有在用户导航到该特定页面后才能创建表格。

我的月份对象中的数据如下。因为我现在在工作,所以从记忆中做,但它应该是正确的:

{
    "id": "0",
    "year": "2011",
    "month": "january",
    "gross": "10000",
    "net": "8000",
    "expenses": "2000",
    "afterExpenses": "6000",
    "savings": "4000",
    "moneyToSpend": "2000"
}

所以我的问题是:有没有简单的解决方案?如果是这样,我该怎么做?

【问题讨论】:

  • 你到底是如何插入数据的?似乎 j 和 k 被翻转了,但是您的小提琴没有显示确切的插入,所以我不知道。月份对象内的数据格式示例也会有所帮助。
  • 你能发布你的json数据吗?
  • @DavidMillar 我使用$('<td/>').text(response.result[i][k].gross) 添加我的结果。 i 计数为 4(表格和年份的数量),k 计数为 12(对象中的单元格/键)。我现在可以看到k 会更高,并开始选择我的对象中没有的项目,但这并没有给我一个错误,而且一切都很好地显示出来。我现在正在工作,我面前没有代码。

标签: jquery html css arrays loops


【解决方案1】:

我通过添加一些ifelse if-cases 解决了这个问题,尽管我真的不想使用它。

Fiddle with comments.

【讨论】:

    猜你喜欢
    • 2017-10-18
    • 2015-01-18
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多