javascript - 關(guān)于循環(huán)創(chuàng)建對象數(shù)組以及增加隨機(jī)值
問題描述
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è) 對象數(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 } ]
我的問題是第二個(gè)用for產(chǎn)生的對象數(shù)組,obj.password的值不重復(fù)
.................
問題解答
回答1:原因這個(gè)問題很隱蔽誒。
obj 是引用。 意味著你每次 push 的都是同一個(gè) obj
至于值為什么一直都是一樣 是因?yàn)?你修改的都是同一個(gè) obj 所以值按最后一次的隨機(jī)數(shù)來。
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. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)2. html按鍵開關(guān)如何提交我想需要的值到數(shù)據(jù)庫3. HTML 5輸入框只能輸入漢字、字母、數(shù)字、標(biāo)點(diǎn)符號?正則如何寫?4. javascript - 請教如何獲取百度貼吧新增的兩個(gè)加密參數(shù)5. gvim - 誰有vim里CSS的Indent文件, 能縮進(jìn)@media里面的6. 跟著課件一模一樣的操作使用tp6,出現(xiàn)了錯(cuò)誤7. PHP類屬性聲明?8. javascript - 求助canvas繪制馬賽克的問題,老是取色不準(zhǔn)9. java - 安卓接入微信登錄,onCreate不會執(zhí)行10. python沒入門,請教一個(gè)問題
