let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,

};
有时候对于这样的一个对象,我们只想获得其中的部分属性,有什么好方法呢?

一、delete方法

let obj = { a: 1, b: 2, c: 3 };
let obj2 = Object.assign({}, obj);
delete obj2.b;
console.log(obj); //{a: 1, b: 2, c: 3}
console.log(obj2); // {a: 1, c: 3}

只适用于一层的数组,因为Object.assign不是深拷贝,如果obj为 {a: 1, b: { c: 2 }}时,删除obj2.b.c时,obj.b.c也会被删除为空对象。

二、采用lodash的pick方法

var object = { 'a': 1, 'b': '2', 'c': 3 };_.pick(object, ['a', 'c']);
// => { 'a': 1, 'c': 3 }

lodash文档
如果项目中正好引用了lodash可以考虑此方法。

三、解构赋值

let obj = {a: 1,b: 2,c: 3,d: 4,e: 5
};
let {a, c, ...pick} = obj;
console.log(pick);
// => {b: 2, d: 4, e: 5};

通过不取a和c属性, 来获得pick的值,适合于不选的属性值比较少的情况,比如我有20个,我需要其中的15个。

四、用数组的reduce方法。
reduce方法介绍

let obj = {a: 1,b: 2,c: 3,d: 4,e: 5
};
let pick = ['a', 'c'];
let obj2 = pick.reduce((obj2, item) => {if(item in obj) {obj2[item] = obj[item];}return obj2;
}, {});
console.log(obj2);
// => { 'a': 1, 'c': 3 }

js中取一个对象的部分属性相关推荐

  1. Thymeleaf读取model里面的对象||Thymeleaf读取model里面的集合||Themeleaf在js中取值||访问带参数的消息||ThymeleafObjects的使用[取三大作域的值

    Thymeleaf读取model里面的对象 Student.java package com.sxt.domain;import lombok.AllArgsConstructor; import l ...

  2. 在js中如何使用jquery的属性选择器

    个人理解: 可以更快捷的改变标签的属性 第一步先创建好需要用的标签: <input type="checkbox" name="newsletter" v ...

  3. JS中window对象的opener属性

    JS中window对象的opener属性 JS中window对象的opener属性 window.opener是js中window的一个属性,它返回的是打开当前窗口的窗口对象.如果窗口A弹出一个窗口B ...

  4. js中判断一个对象是否存在

    一.Boolean()方法 用Boolean()方法可以将Js中的任意数据类型转为布尔值: 二.用于判断xx是否存在 js一般会自动执行Boolean()方法,我们可以借此判断某个对象在js当前的执行 ...

  5. 如何使用Vue.js中的set设置对象属性值

    1.问题背景 使用vue初始化一个对象v,并在data中初始化一个空对象obj,然后使用Vue.set()给对象obj添加属性 2.实现源码 <!DOCTYPE html> <htm ...

  6. JS 中判断一个对象是否为数组对象?

    在面向对象中 判断一个对象中 判断一个对象是否为数组 1 可以查找它的原型 (__proto__) 是否为数组对象的原型对象 var arr1 = [1,2,3];console.log(arr1._ ...

  7. js中给html元素追加属性,JS为元素添加自定义属性

    JS 除了可以操作 HTML 元素现有的属性外,还可以对 HTML 元素自定义属性以及对这些自定义的属性进行读.写操作.JS 可以为任何 HTML 元素自定义任意的属性(属性名必须符合标识符规范). ...

  8. 请问JS中new 一个对象发生了什么

    new一个实例 // es5 const Lijianhua = function () {this.lastname = 'li'this.firstname = 'jianhua' } Lijia ...

  9. 【Javascript高级知识】深入剖析JS中New一个对象的过程(实现原理)

    new一个对象的原理是怎样的呢? 用new Object() 的方式新建了一个对象 obj 取出第一个参数,就是我们要传入的构造函数.此外因为 shift 会修改原数组,所以 arguments 会被 ...

最新文章

  1. 电子病历、HL7交流QQ群:14739311欢迎一起交流
  2. Bitlocker企业安全加密管理系列-2
  3. 现金支付没落?澳大利亚一年内移除数百台ATM机
  4. 【译】SQL Server索引进阶第八篇:唯一索引
  5. windows下的正向shell
  6. 不刷新页面的tab_SwiftUI小技巧之如何解决Tab切换后页面重置和List刷新bug
  7. 患者砍医生事件的一些胡言乱语
  8. [小技巧][JAVA]函数返回一个长度不确定的数组 (int[ ])
  9. 怎样下载python模块sublime text3中_python安装环境配置、python模块添加、sublime text编辑器配置...
  10. mysql重新创建测试对象的SQL_MySQL_Sql_打怪升级_进阶篇_测试: SQL随机生成测试数据...
  11. 什么是等保三级?基本流程是什么样的?
  12. 新的宽高比(aspect-ratio)CSS属性
  13. 计算机基础知识学习顺序
  14. HP LaserJet Pro MFP M227d安装指南
  15. Mac OS X 内核Rootkit开发指南
  16. QQ个性装扮气泡免费使用
  17. mysql中like与rlike_Hive中rlike,like,notlike区别及使用
  18. mysql migration toolkit 使用_MySQL Migration Toolkit的使用
  19. 前端实现批量下载图片(自己的服务器需设置可跨域请求)
  20. mysql左联和全等_Mysql7种join连接及mysql一些知识点-Go语言中文社区

热门文章

  1. 一文读懂NPORT(惯导)测试流程
  2. centos7 选择中文拼音输入法
  3. UESTC 758 P酱的冒险旅途
  4. 7月19日 List集合
  5. List<Integer>使用Remove移除int元素
  6. HBase学习01--Hbase的安装
  7. 计算机一级证书的编号怎么查?
  8. 抓马,互联网惊现AI鬼城:上万个AI发帖聊天,互相嗨聊,人类被禁言
  9. 三里人家代理商管理系统开发
  10. 在Ubuntu 10.04下使用uTorrent下载六维空间资源