javascript - 关于循环创建对象数组以及增加随机值
问题描述
var arr = [ { email: ’’, role: ’normal’, password: ’’ }, { email: ’’, role: ’normal’, password: ’’ }, { email: ’’, role: ’normal’, password: ’’ }, { email: ’’, role: ’normal’, password: ’’ }, { email: ’’, role: ’normal’, password: ’’ }, { email: ’’, role: ’normal’, password: ’’ } ]arr.forEach(o => { o.password =Math.random() })output :[ { email: ’’, role: ’normal’, password: 0.16326031488429638 }, { email: ’’, role: ’normal’, password: 0.4941354999549721 }, { email: ’’, role: ’normal’, password: 0.6802056630925 }, { email: ’’, role: ’normal’, password: 0.5038916232454755 }, { email: ’’, role: ’normal’, password: 0.5232000715886489 }, { email: ’’, role: ’normal’, password: 0.1599782533612224 } ]当使用 for 创建一个 对象数组 var obj = { email: ’1’, role: ’normal’, password: ’’},array=[]for(let i =0;i<6;i++){ array.push(function(){ obj.password = Math.random() return obj }) }output: [ { email: ’1’, role: ’normal’, password: 0.4311454570811686 }, { email: ’1’, role: ’normal’, password: 0.4311454570811686 }, { email: ’1’, role: ’normal’, password: 0.4311454570811686 }, { email: ’1’, role: ’normal’, password: 0.4311454570811686 }, { email: ’1’, role: ’normal’, password: 0.4311454570811686 }, { email: ’1’, role: ’normal’, password: 0.4311454570811686 } ]
我的问题是第二个用for产生的对象数组,obj.password的值不重复
.................
问题解答
回答1:原因这个问题很隐蔽诶。
obj 是引用。 意味着你每次 push 的都是同一个 obj
至于值为什么一直都是一样 是因为 你修改的都是同一个 obj 所以值按最后一次的随机数来。

var arr = [ { email: ’’, role: ’normal’, password: ’’ }, { email: ’’, role: ’normal’, password: ’’ }, { email: ’’, role: ’normal’, password: ’’ }, { email: ’’, role: ’normal’, password: ’’ }, { email: ’’, role: ’normal’, password: ’’ }, { email: ’’, role: ’normal’, password: ’’ } ]arr.forEach(e => e.password = Math.random()); arr.forEach(console.log);ScreenShot

相关文章:
1. 老师,你这两条斜杠的是怎么注释的?2. java - mybatis源码分析3. 修改mysql配置文件的默认字符集重启后依然不生效4. docker网络端口映射,没有方便点的操作方法么?5. css - html根字体设置成很大的值后, 包裹了行内元素的div莫名变高是什么原因6. 请教一个python字符串处理的问题?7. docker内创建jenkins访问另一个容器下的服务器问题8. python - scrapy 处理 文章 分页的内容9. python相关问题求解决,有偿10. 在Android5.0以下,出现NoClassDefFoundErro,OkHostnameVerifier

网公网安备