求解一个js 的 for 循环计算逻辑问题!!

//如何算出当天加上前几天的总和。(例如:在第三天的总数输出 当前加上一二的数)

<script>
var data=[
    {n:'第五天',b:10},
    {n:'第四天',b:20},
    {n:'第三天',b:5},
    {n:'第二天',b:1},
    {n:'第一天',b:2}
];
    var html = '';
    var sie =0;//如何算出当天加上前几天的总和。(例如:在第三天的总数输出 当前加上一二的数)
    for(var i=0; i<data.length; i++){
        html +='<p>'+data[i].n+'有'+data[i].b+'元,总数'+sie+'元</p>'    
    }
    document.write(html);
    
</script>    

例如这样的结果:
第五天有10元,总数38元

第四天有20元,总数28元

第三天有5元,总数8元

第二天有1元,总数3元

第一天有2元,总数2元

阅读 3.9k
5 个回答
<script>
var data=[
    {n:'第五天',b:10},
    {n:'第四天',b:20},
    {n:'第三天',b:5},
    {n:'第二天',b:1},
    {n:'第一天',b:2}
];
    var html = '';
    var sie =[];//如何算出当天加上前几天的总和。(例如:在第三天的总数输出 当前加上一二的数)
    var num=0;
    for(var i = data.length-1; i >= 0; i--) {
        num += data[i].b
        sie[i] = num;
    };
    for(var i = 0; i < data.length; i++){
       html +='<p>' +data[i].n+ '有' +data[i].b+ '元,总数' +sie[i]+ '元</p>';    
    }; 
    document.write(html);

</script>

两个for完美解决

  1. 正序和倒序? reverse() 岂不是很简单
    clipboard.png
    clipboard.png
  2. 乱序? sort() 排序,如果你没有其他标识天数的。
    当然,第十天,第十一天,第一百天,这些特殊规则没录入。
    clipboard.png

var html = '';

        var sie = 0; //如何算出当天加上前几天的总和。(例如:在第三天的总数输出 当前加上一二的数)
        for (var i = data.length-1; i >=0; i--) {
            sie += data[i].b;
            html += '<p>' + data[i].n + '有' + data[i].b + '元,总数' + sie + '元</p>'
        }

reduce了解下

  • 下面是我想出的代码
  • 之前错看了问题,并且错误地批评了楼主,我在这道歉。

        <script>
            var data =
            [
                { n: '第五天', b: 10 },
                { n: '第四天', b: 20 },
                { n: '第三天', b: 5 },
                { n: '第二天', b: 1 },
                { n: '第一天', b: 2 }
            ];
            var new_data = new Array();
            var day_index =
            {
                '第五天': 5,
                '第四天': 4,
                '第三天': 3,
                '第二天': 2,
                '第一天': 1
            }
            var html = '';
            var sum = 0;
            var i;
            for (i = 0; i < data.length; i++)
            {
                new_data[day_index[data[i].n]] = { "n": data[i].n, "b": data[i].b };
            }
            for (i = 1; i < new_data.length; i++)
            {
                sum += new_data[i].b;
                html += '<p>' + new_data[i].n + '有' + new_data[i].b + '元,总数' + sum + '元</p>'    
            }
            document.write(html);
        </script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题