唯品秀前端博客
当前位置: 前端开发 > JavaScript > 上帝的视角带你玩弄js一维数组转二维数组-数据归档

上帝的视角带你玩弄js一维数组转二维数组-数据归档

2020-08-29 分类:JavaScript 作者:管理员 阅读(1067)

这是群里有人问到的一个问题,有些数据可能后端娃子偷懒,假如给你一个接口,然后直接一个一维数组统统给你返回,而你则需要把某些相同特性数据归类展示在不同的位置那你应该怎么去处理呢?如下图

后端数据格式

想要达到的目的

实例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>一维数组转二维数组 - 数据归档</title>
</head>

<body>
    <script>
        let arr = [
            { id: 0, time: "2020-02-19" },
            { id: 1, time: "2020-02-30" },
            { id: 2, time: "2020-02-19" },
            { id: 3, time: "2018-09-10" },
            { id: 4, time: "2018-09-10" },
            { id: 5, time: "2020-02-19" },
            { id: 6, time: "2020-02-19" },
            { id: 7, time: "2019-04-23" },
            { id: 8, time: "2018-09-10" },

        ];
        function newArr(arr, key) {
            let obj = {};
            arr.forEach((e) => {
                if (!obj[e[key]]) {
                    obj[e[key]] = []
                }
                obj[e[key]].push(e)
            });
            return Object.values(obj)
        }
        console.log(newArr(arr, "time"))
    </script>
</body>

</html>

小结

注意,Object.values(obj)返回一个数组,其元素是在obj对象上找到的可枚举属性值。属性的顺序与手动循环对象的属性值所给出的顺序相同。通俗来说,它是返回一个数组,每一项对应的值是对象的值,返回的数组的每项排序是根据对象的key来的,实例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
var obj = { foo: 'bar', baz: 42 };
console.log(Object.values(obj)); // ['bar', 42]
 
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.values(obj)); // ['a', 'b', 'c']
 
var an_obj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.values(an_obj)); // ['b', 'c', 'a']
 
var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } });
my_obj.foo = 'bar';
console.log(Object.values(my_obj)); // ['bar']
console.log(Object.values('foo')); // ['f', 'o', 'o']复制代码

「四年博客,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏

谢谢你请我吃鸡腿*^_^*

支付宝
微信
0

谢谢你请我吃鸡腿*^_^*

支付宝
微信

上一篇:

下一篇:

你可能感兴趣

1 条评论关于"上帝的视角带你玩弄js一维数组转二维数组-数据归档"

  1. 爱上营销站 Windows NT Chrome 78.0.3904.108

    感谢博主分享

博客简介

唯品秀博客: weipxiu.com,一个关注Web前端开发技术、关注用户体验、坚持更多原创实战教程的个人网站,愿景:成为宇宙中最具有代表性的前端博客,期待您的参与,主题源码 

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 264 篇
  • 草稿数目: 0 篇
  • 分类数目: 16 个
  • 独立页面: 6 个
  • 评论总数: 926 条
  • 链接总数: 14 个
  • 标签总数: 468 个
  • 注册用户: 8101 人
  • 访问总量: 9445327 次
  • 最近更新: 2020年9月25日
服务热线:
 173xxxx7240

 QQ在线交流

 旺旺在线