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 @   让梓航飞  阅读(1700)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示