Fork me on GitHub

JS提取对象的部分属性

 1 var data=
 2  [
 3     {
 4         "id": 1,
 5         "username": "u1",
 6         "passwd": "p1",
 7         "start_time": 1654065668,
 8         "expires": 1654963200,
 9         "comment": "comment1",
10         "enabled": "yes",
11         "create_time": 1654065668
12     },
13     {
14         "id": 2,
15         "username": "u2",
16         "passwd": "p2",
17         "start_time": 1654065668,
18         "expires": 1654963200,
19         "comment": "comment2",
20         "enabled": "yes",
21         "create_time": 1654065668
22     },
23     {
24         "id": 3,
25         "username": "u3",
26         "passwd": "p3",
27         "start_time": 1654065668,
28         "expires": 1654963200,
29         "comment": "comment3",
30         "enabled": "yes",
31         "create_time": 1654065668
32     }
33 ]

只需要提取 id, username, enabled 这3个字段
不需要其他字段

1 let newData=data.map(
2      // 这里利用了ES6 中的参数解构把需要的属性明确 包含 列出来,
3      // 在需要的属性比较少的情况下使用
4      ({ id, username, enabled}) => 
5      ({ id, username, enabled})
6   );
7 
8   
9   console.log(newData);

 

假如 在一个接口中需要提取 除了passwd 以外的字段,因为一个一个写列表比较长,所以此处用排除法

1  let newData1=data.map(
2      // 这里利用了ES6 中的参数解构 和 扩展运算符...
3      // 在需要的属性比较多,且排除的属性比较少的情况下使用
4      // 此处我们把passwd 单独提取出来,并用 ...newEntity 把其他属性都放到了 
5      // newEntity 这个对象中,这样newEntity 就不包含passwd 
6      ({ passwd, ...newEntity}) => 
7      (newEntity)
8   );
9   console.log(newData1);

 

posted @ 2022-08-08 21:28  让梓航飞  阅读(1745)  评论(0)    收藏  举报