javascript - 關(guān)于循環(huán)創(chuàng)建對(duì)象數(shù)組以及增加隨機(jī)值
問(wèn)題描述
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 } ]當(dāng)使用 for 創(chuàng)建一個(gè) 對(duì)象數(shù)組 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 } ]
我的問(wèn)題是第二個(gè)用for產(chǎn)生的對(duì)象數(shù)組,obj.password的值不重復(fù)
.................
問(wèn)題解答
回答1:原因這個(gè)問(wèn)題很隱蔽誒。
obj 是引用。 意味著你每次 push 的都是同一個(gè) obj
至于值為什么一直都是一樣 是因?yàn)?你修改的都是同一個(gè) obj 所以值按最后一次的隨機(jī)數(shù)來(lái)。
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
相關(guān)文章:
1. html5 - h5寫的app用的webview,用手機(jī)瀏覽器打開不顯示?2. php - 第三方支付平臺(tái)在很短時(shí)間內(nèi)多次異步通知,訂單多次確認(rèn)收款3. mysql - 一個(gè)表和多個(gè)表是多對(duì)多的關(guān)系,該怎么設(shè)計(jì)4. objective-c - iPhone如何實(shí)現(xiàn)微信的搖一搖功能?5. mysql新建字段時(shí) timestamp NOT NULL DEFAULT ’0000-00-00 00:00:00’ 報(bào)錯(cuò)6. 我在導(dǎo)入模板資源時(shí)遇到無(wú)法顯示的問(wèn)題,請(qǐng)老師解答下7. javascript - 百度echarts series數(shù)據(jù)更新問(wèn)題8. Mysql && Redis 并發(fā)問(wèn)題9. mysql scripts提示 /usr/bin/perl: bad interpreter10. 請(qǐng)教一個(gè)python字符串處理的問(wèn)題?
