二维数组合并成一维数组_上帝的视角带你玩弄js一维数组转二维数组数据归档...

这篇博客讨论了如何处理后端返回的一维数组,将其转换为二维数组以满足前端展示的需求。通过实例代码演示了如何归类和组织数据,利用`Object.values(obj)`方法将数据进行转化。最后进行了小结,强调了该方法返回的数组顺序与对象的key顺序一致。
摘要由CSDN通过智能技术生成

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

后端数据格式

0770b55b0630ed110ace013370a51a64.png

想要达到的目的

5ebf349ffe34e0ba1fdb04945489e06c.png

实例代码

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"))body>html>

5204b9d4ce5f037a65486ff3ef923412.png

小结

注意,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']复制代码
22d88e48f4a5e7c7a1265f65f0fc4de7.png 341e4fef84f73bfa212b1209217494fc.png微信号:gh_dcd05cdf3c3e扫码关注我们,获取最新资讯
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值