JavaScript遍历两个数组生成含随机数的对象数组实现方法
实现方案
两个数组长度一致时,按索引对位取值、组装对象即可,推荐两种常用写法:
写法1:map 简洁写法
无需手动声明空数组、手动push,直接遍历第一个数组,通过索引取第二个数组对应位置的元素即可:
let names1 = ["om","karan","ranjett","rocky"] let names2 = ["vaibhu","Shrushti","rekha","kunal"] const result = names1.map((currentN1, index) => ({ n1: currentN1, n2: names2[index], // 此处生成0-99区间的随机整数,需要调整数值范围直接修改乘数即可,例如要0-100的整数就把100改成101 randomnumber: Math.floor(Math.random() * 100) }))
写法2:基础for循环写法
逻辑和上面完全一致,适合对JS高阶方法不熟悉的场景:
let names1 = ["om","karan","ranjett","rocky"] let names2 = ["vaibhu","Shrushti","rekha","kunal"] const result = [] // 以数组长度为遍历边界,两个数组等长时不会出现取值为空的问题 for (let i = 0; i < names1.length; i++) { result.push({ n1: names1[i], n2: names2[i], randomnumber: Math.floor(Math.random() * 100) }) }
注意点
- 两种写法输出的结果结构完全匹配给出的示例,每个对象独立对应一组同位置的name值+单独生成的随机数。
- 如果两个数组长度不一致,遍历到短数组耗尽后就会停止,需要兼容不等长场景的话,可以先取两个数组长度的最大值作为遍历边界,缺失的位置赋值为
undefined即可。
内容的提问来源于stack exchange,提问作者om pharate
相关产品推荐
相关产品推荐

