JavaScript 数组-对象类型分析(1)

这里直接正题

        // a)求所有学生总成绩
        // b)求所有学生的语文总成绩
        // c)求所有超过60分的学生语文总成绩
        // d)删除不及格的科目信息
            var arr= [
                { "id": 1, "name": "张三", "score": 55, "subject": "语文" },
                { "id": 2, "name": "李四", "score": 76, "subject": "语文" },
                { "id": 3, "name": "王五", "score": 67, "subject": "语文" },
                { "id": 4, "name": "张三", "score": 23, "subject": "数学" },
                { "id": 5, "name": "李四", "score": 81, "subject": "数学" },
                { "id": 6, "name": "王五", "score": 64, "subject": "数学" },
            ]

这次我直接把分析加到注释里,否则很难解释清楚,直接看代码吧!

        <script type="text/javascript">
		// a)求所有学生总成绩
		// b)求所有学生的语文总成绩
		// c)求所有超过60分的学生语文总成绩
		// d)删除不及格的科目信息
			var arr= [
				{ "id": 1, "name": "张三", "score": 55, "subject": "语文" },
				{ "id": 2, "name": "李四", "score": 76, "subject": "语文" },
				{ "id": 3, "name": "王五", "score": 67, "subject": "语文" },
				{ "id": 4, "name": "张三", "score": 23, "subject": "数学" },
				{ "id": 5, "name": "李四", "score": 81, "subject": "数学" },
				{ "id": 6, "name": "王五", "score": 64, "subject": "数学" },
			]
			
			var sum=arr.reduce(function(res,item){
				//把数组拉开以后,每个对象的 score的值相加
				return res+=item.score;
			},0)
			document.write("总成绩:"+sum+"<br>")
				
			var sumCh=arr.reduce(function(res,item){
				//item 下面的对象等于语文,把它所对应的item.score相加;
				if(item.subject==='语文'){
				   res+=item.score;
				}
				return res;
			},0)
			document.write("语文成绩:"+sumCh+"<br>");
			
			var sumJige=arr.reduce(function(res,item){
				//如果item.subject 是语文并且 item.score是大于等于60分的
				//累加 item.score;
				if(item.subject==='语文' && item.score>=60){
				   res+=item.score;
				}
				return res;
			},0);
			//上面的0是把res 的值初始化 和 var res = 0; 是一样的,不初始化的话 它会默认等于第        一个item的值(很重要)
			document.write("及格语文成绩:"+sumJige+"<br>")
			
			//过滤出score>=60的值 并且返回新的数组。
			var jigeArr=arr.filter(function(item){
				return item.score>=60;
			});
			console.log(jigeArr);
		</script>

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EternityNotBug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值