我有一个包含专辑的对象数组,我想在用户重新打开专辑屏幕时对其进行随机播放。
所以我写了一些函数,但它只有一个项目而不是全部,那么我如何处理它以在洗牌后返回所有项目?
专辑
"data": [
{
"id": 3,
"name": "01- Out Life 2002",
"company": "arabic rap",
"avatar": "upload/Albums/1579652663.jpg",
"artists_id": 3,
"users_id": 1,
"created_at": "2020-01-22 00:24:23",
"updated_at": "2020-01-23 18:20:53"
},
{
"id": 1,
"name": "02 - First 2 Bomb - 2003",
"company": "arabic rap",
"avatar": "upload/Albums/1579803681.jpg",
"artists_id": 3,
"users_id": 1,
"created_at": "2020-01-07 01:36:35",
"updated_at": "2020-01-23 18:21:21"
},
{
"id": 5,
"name": "Scormix 1",
"company": "arabic rap",
"avatar": "upload/Albums/1580658846.jpeg",
"artists_id": 4,
"users_id": 1,
"created_at": "2020-02-02 15:54:06",
"updated_at": "2020-02-02 15:54:06"
},
]
shuffle = arr => arr[Math.floor(arr.length * Math.random())];
// just return One Item ~_~
最佳答案
您的函数仅返回使用随机整数访问的一项,但您可以使用 Array.map()从参数一创建一个新数组!
大概您只想将每个专辑显示一次,所以我建议 excellent answer提到Fisher-Yates shuffle的类似问题
关于javascript - 如何对对象数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60031609/