簡體   English   中英

JavaScript 從數組中獲得 3 個唯一的隨機 object

[英]JavaScript get 3 unique random object from array

我想做的是,顯示隨機名稱,我已經知道了,但我想顯示來自 object 的 3 個隨機名稱,而且是唯一的,我的意思是不顯示重復。 我怎樣才能做到這一點?

 var items = [{name: 'Tom', phone: '12321'}, {name: 'Jerry', phone: '235677'}, {name: 'Mike', phone: '11209765'}, {name: 'Robert', phone: '5345'}, {name: 'Danny', phone: '1247774'}, {name: 'Josef', phone: '1199900'}, {name: 'Rainbow', phone: '12675'}, {name: 'Avi', phone: '12344'}, {name: 'Shani', phone: '12222767'}]; var item1 = items[Math.floor(Math.random() * items.length)]; var item2 = items[Math.floor(Math.random() * items.length)]; var item3 = items[Math.floor(Math.random() * items.length)]; $('#Name-1').text('Name 1: '+item1.name); $('#Name-2').text('Name 2: '+item2.name); $('#Name-3').text('Name 3: '+item3.name);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="Name-1"></div> <div id="Name-2"></div> <div id="Name-3"></div>

這項工作但有時會顯示重復,如下所示:

Name 1: Danny
Name 2: Mike
Name 3: Mike

這將適用於您的情況。 從數組中刪除選定的項目。 它總是會給你獨特的價值。

 var items = [{ name: 'Tom', phone: '12321' }, { name: 'Jerry', phone: '235677' }, { name: 'Mike', phone: '11209765' }, { name: 'Robert', phone: '5345' }, { name: 'Danny', phone: '1247774' }, { name: 'Josef', phone: '1199900' }, { name: 'Rainbow', phone: '12675' }, { name: 'Avi', phone: '12344' }, { name: 'Shani', phone: '12222767' }]; function getRandom(items) { let names = []; let first = Math.floor(Math.random() * items.length); names.push(items[first].name); items.splice(first, 1); let second = Math.floor(Math.random() * items.length); names.push(items[second].name); items.splice(second, 1); let third = Math.floor(Math.random() * items.length); names.push(items[third].name); return names; } console.log(getRandom([...items]));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM