javascript - 如何对对象数组进行排序?

标签 javascript arrays reactjs react-native sorting

我有一个包含专辑的对象数组,我想在用户重新打开专辑屏幕时对其进行随机播放。

所以我写了一些函数,但它只有一个项目而不是全部,那么我如何处理它以在洗牌后返回所有项目?

专辑

"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/

相关文章:

javascript - 声明顺序和赋值

javascript - 如何在javascript函数中从html获取数据值?

c - 程序崩溃从 C 中的函数访问动态分配的数组

javascript - 使用 React,如何水平滚动到可滚动 div 中的选定元素?

ios - React Native 和 Firebase 错误 403

javascript - 通过动态插入的 DOM 元素进行 AJAX 调用,我必须使用 Mutation Observer 吗?

javascript - 在 1 个对象中应用 jQuery 函数 live()

通过检查多个条件的 Javascript 数组过滤器

java - 尝试从 JSON 中嵌套的数组读取值

javascript - React 中的嵌套键属性要求