js中取一个对象的部分属性
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中取一个对象的部分属性相关推荐
- Thymeleaf读取model里面的对象||Thymeleaf读取model里面的集合||Themeleaf在js中取值||访问带参数的消息||ThymeleafObjects的使用[取三大作域的值
Thymeleaf读取model里面的对象 Student.java package com.sxt.domain;import lombok.AllArgsConstructor; import l ...
- 在js中如何使用jquery的属性选择器
个人理解: 可以更快捷的改变标签的属性 第一步先创建好需要用的标签: <input type="checkbox" name="newsletter" v ...
- JS中window对象的opener属性
JS中window对象的opener属性 JS中window对象的opener属性 window.opener是js中window的一个属性,它返回的是打开当前窗口的窗口对象.如果窗口A弹出一个窗口B ...
- js中判断一个对象是否存在
一.Boolean()方法 用Boolean()方法可以将Js中的任意数据类型转为布尔值: 二.用于判断xx是否存在 js一般会自动执行Boolean()方法,我们可以借此判断某个对象在js当前的执行 ...
- 如何使用Vue.js中的set设置对象属性值
1.问题背景 使用vue初始化一个对象v,并在data中初始化一个空对象obj,然后使用Vue.set()给对象obj添加属性 2.实现源码 <!DOCTYPE html> <htm ...
- JS 中判断一个对象是否为数组对象?
在面向对象中 判断一个对象中 判断一个对象是否为数组 1 可以查找它的原型 (__proto__) 是否为数组对象的原型对象 var arr1 = [1,2,3];console.log(arr1._ ...
- js中给html元素追加属性,JS为元素添加自定义属性
JS 除了可以操作 HTML 元素现有的属性外,还可以对 HTML 元素自定义属性以及对这些自定义的属性进行读.写操作.JS 可以为任何 HTML 元素自定义任意的属性(属性名必须符合标识符规范). ...
- 请问JS中new 一个对象发生了什么
new一个实例 // es5 const Lijianhua = function () {this.lastname = 'li'this.firstname = 'jianhua' } Lijia ...
- 【Javascript高级知识】深入剖析JS中New一个对象的过程(实现原理)
new一个对象的原理是怎样的呢? 用new Object() 的方式新建了一个对象 obj 取出第一个参数,就是我们要传入的构造函数.此外因为 shift 会修改原数组,所以 arguments 会被 ...
最新文章
- 电子病历、HL7交流QQ群:14739311欢迎一起交流
- Bitlocker企业安全加密管理系列-2
- 现金支付没落?澳大利亚一年内移除数百台ATM机
- 【译】SQL Server索引进阶第八篇:唯一索引
- windows下的正向shell
- 不刷新页面的tab_SwiftUI小技巧之如何解决Tab切换后页面重置和List刷新bug
- 患者砍医生事件的一些胡言乱语
- [小技巧][JAVA]函数返回一个长度不确定的数组 (int[ ])
- 怎样下载python模块sublime text3中_python安装环境配置、python模块添加、sublime text编辑器配置...
- mysql重新创建测试对象的SQL_MySQL_Sql_打怪升级_进阶篇_测试: SQL随机生成测试数据...
- 什么是等保三级?基本流程是什么样的?
- 新的宽高比(aspect-ratio)CSS属性
- 计算机基础知识学习顺序
- HP LaserJet Pro MFP M227d安装指南
- Mac OS X 内核Rootkit开发指南
- QQ个性装扮气泡免费使用
- mysql中like与rlike_Hive中rlike,like,notlike区别及使用
- mysql migration toolkit 使用_MySQL Migration Toolkit的使用
- 前端实现批量下载图片(自己的服务器需设置可跨域请求)
- mysql左联和全等_Mysql7种join连接及mysql一些知识点-Go语言中文社区