javascript - 从 json 对象获取今天和昨天的数据,其中数组/对象键是日期

标签 javascript

我正在使用 ajax 来获取每天的销售列表,下面是返回给我的 ajax 示例(我对前端和后端有完全的控制权,所以让我知道数组结构是否可以更好地改进为适合任务);

{

"map": [ … ],
"salesCount": {
    "ins_1": {
        "17/09/2012": 5,
        "16/09/2012": 32,
        "15/09/2012": 75,
        "14/09/2012": 78,
        "13/09/2012": 79,
        "12/09/2012": 83,
        "11/09/2012": 74,
 ...
    "ins_2": {
        etc

我想获得今天 (17/09/2012) 和昨天的销售额。到目前为止我有这个:

$.ajax({
    url:        appPath+'application/sale/json',
    type:       'POST',
    dataType:   'json',
    success:    function(response) 
    {
        var keys = null;

        // Get and organise our sales data
        jQuery.each(response.salesCount, function(insurer, dayList) 
        {
            controller.salesData[insurer] = {"days": dayList};

            keys = Object.keys(controller.salesData[insurer].days);
            controller.salesData[insurer].today = controller.salesData[insurer].days[keys[0]];

            // Update sales totals
            $('#'+insurer+' p.today').html(controller.salesData[insurer].today);

这工作正常,但正如您想象的那样它不是很灵活(而且我猜想依赖对象不存在的顺序是个坏主意)。

因此,我尝试根据日期引用销售数组。我试过:

// Work out todays date and sales
var today = new Date();
var todayString = today.getDate()+'/'+today.getMonth()+'/'+today.getFullYear();

console.log(todayString)
console.log(controller.salesData[insurer].days[todayString]);

// outputs: 17/8/2012 and "85"(which is wrong, no idea where it gets that value)

我试过更改数组键以删除正斜杠等,但没有成功。当然有更好的方法吗?

谢谢。

最佳答案

要返回今天的销售数量,您可以像这样查询 JSON 对象:

var json =
{
    "salesCount": {
        "ins_1": {
            "17/09/2012": 5,
            "16/09/2012": 32,
            "15/09/2012": 75,
            "14/09/2012": 78,
            "13/09/2012": 79,
            "12/09/2012": 83,
            "11/09/2012": 74
        }
    }
};

var today = new Date();
var month = today.getMonth() + 1;
var dateString = today.getDate() + '/' + (month < 10 ? '0' + month : month) + '/' + today.getFullYear();
var totalSales = json['salesCount']['ins_1'][dateString];

console.log(totalSales); // outputs 5

关于javascript - 从 json 对象获取今天和昨天的数据,其中数组/对象键是日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12459628/

相关文章:

javascript - Angular js : how to use ngMousedown ngMouseup

javascript - 如何制作以不变速率重复的多个 D3.js 转换?

javascript - d3月度数据集-更新数据-添加新组

javascript - 在 Twitter Bootstrap 模型中验证表单

javascript - 如何检索 Javascript 对象名称数组

javascript - 启用/禁用模态弹出按钮

php - 能够在某些页面上更改 disqus_identifier

javascript - ('checkbox' ).change() 在页面加载时运行

javascript - 一行中的多个 <select> 下拉列表(Foundation css import)

javascript - 自定义工具提示,使烛台保持原样