JS(数组批处理).数组中的值变成对象中属性

这篇博客介绍如何利用JavaScript将一个学生数组的值转化为对象属性,并为每个学生随机抽取指定数量的题目。通过数学API实现随机抽题,展示如何熟练操作数组批处理API及理解`this`的指向。文中提供了将学生数组转换为包含随机题号的对象以及使用`filter`方法过滤不及格成绩的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有一个长度为5的学生数组["jack","rose","john","kitty","doggy"],有10000道题,为每个学生随机抽取5道,生成抽题结果并输出(题号可以重)

输出结果 {jack:[3,1,4,5,9],rose:[2,6,5,3,8]...}

思考:数组每个值要变成对象中每一个属性;需要遍历;10000道题是随机需要mathAPI中来操作;

熟练操作数组的批处理API;熟悉this的指向问题;以下为代码逻辑;

此题要分两个部分一部分试题数组也就是对象的键值部分;建议拆分成一个函数轮子,方便使用;

其二是学生数组转对象属性的部分使用批处理和遍历来完成;

代码区
 


 function fi11() {
 // 封装一个轮子随机五道题添加到数组
            function ram(a) {
                let arr1 = []
                for (let i = 0; i < 5; i++) {
                    var newValue = Math.round(Math.random() * a)
                    let temp = arr1.push(newValue)
                }
                return arr1
            }
  // 学生数组的拆分
            let arr = ["jack", "rose", "john", "kitty", "doggy"]
            let obj = {}
// 第二种遍历方法拆分后每个学生称为obj中的属性
          arr.forEach(function (value, index, arr) {
                this[value] = ram(10000)
            }, obj)//this的指向为obj
// 打印
            console.log(obj);
        }

        fi11()

2.  生成50个学生的随机成绩,结构如下:然后过滤出不及格的学生形成一个新数组并输出(必须使用filter) [{name:"学生1",so:88},{name:"学生2",so:53},...]

        //首先先把空数组对象建立
        let arr = []
        let obj = {}
        let obj1 = {}
        //封装一个函数方便随机分数
        function ram(a, b) {
            return Math.round(a + (b - a) * Math.random())
        }
        //建立五十个学生档案
        for (let i = 0; i < 50; i++) {
        //对象的添加
            obj['name'] = `学生${i+1}`
            obj['so'] = ram(0, 100)
        //将objpush添加到arr空数组中
            arr.push(obj)
        //*将对象新地址重新变空
            obj = {}
        }
        //打印测试五十个arr值
        console.log(arr);
        //filter去遍历五十个分数
        newArr = arr.filter(function (item, index, c) {
        //返回不大于60分的即不及格分数
            return !(item['so'] >= 60)
        })
        console.log(newArr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

章鱼埃里克.T

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

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

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

打赏作者

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

抵扣说明:

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

余额充值