2017-08-24 52 views
0

我有三個陣列,a1 = [], a2 = [], a3 = [],我想從其他陣列odd[1,3,5]even[0,2,4]把他們的一些值。我想從奇數中得到一些隨機值,然後把它a1和刪除選定的數字,然後對另外兩個數組進行相同的處理。之後,我想甚至與陣列做同樣的事情。Javascript:到達陣列與

我得到的值與math.random,我找到索引與indexOf後,我刪除與splice選定的數字。這工作,但我可以通過使用for縮短過程?

+6

如果你顯示你的代碼而不僅僅是文本描述,這可能會有所幫助。 – epascarello

+1

*這個工程,但我可以縮短過程*,如果這篇文章是關於改進/優化在現有的工作代碼CodeReviews是正確的地方 – Rajesh

+0

不,我正在考慮相同的功能。如果你真的想要,你可以跳過indexOf。類似於destination.push(source.splice(Math.floor(Math.random()* source.length) - 1,1)) –

回答

0

像這樣的東西?

let aDict = {a1: [], a2: [], a3: []}; 
const odd = [1,3,5]; 
const even = [0,2,4] 


for(a of Object.values(aDict)){ 
    a.push(odd.splice(Math.floor((Math.random() * odd.length)),1)[0]); 
    a.push(even.splice(Math.floor((Math.random() * even.length)),1)[0]); 
} 

編輯:不要以爲for ofObject.values()由IE支持。所以如果你需要IE支持,你應該使用for inObject.keys()。那麼可能必須執行hasOwnProperty()檢查。