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. java - mongodb分片集群下,count和聚合統計問題2. javascript - vue 移動端的input 數字輸入優化3. java - 自己制作一個視頻播放器,遇到問題,用的是內置surfaceview類,具體看代碼!4. javascript - 有什么兼容性比較好的辦法來判斷瀏覽器窗口的類型?5. 服務器端 - 采用nginx做web服務器,C++開發應用程序 出現拒絕連接請求?6. 為什么我ping不通我的docker容器呢???7. python - pandas按照列A和列B分組,將列C求平均數,怎樣才能生成一個列A,B,C的dataframe8. 關于docker下的nginx壓力測試9. javascript - npm start 運行’webpack-dev-server’報錯 Cannot find module ’webpack’10. java 隨機延遲執行
