在这个简短的教程中,我们将学习如何通过实例来创建一个javascript对象的子集。
让我们有一个javascript对象
let user = {
id:11,
name: "frank",
salary: 5000,
active: true,
roles: [ "admin","hr"]
};
简单地创建一个部分属性集
让我们创建一个新的对象,初始化现有的部分属性,如下所示。
var userinfo = {id: user.id, name: user.name};
console.log(userinfo);
```markup
output
```markup
{ id: 11, name: 'frank' }
如果对象有很多属性,这就需要大量的代码行
使用reduce方法获得一些属性
在空对象中,使用array.reduce方法迭代键和值的子集,并将其存储为具有所需属性的新数组。
const subset = ['id', 'name'].reduce((result, key) => { result[key] = user[key]; return result; }, {});
使用ES6的结构化赋值
ES6有一个新的语法destructuring赋值操作。
它返回一个对象的子集的结果。
let [id,name]=user;
const userinfo={id,name}
console.log(userinfo)
下划线挑选方法
pick() underscore 库中的方法,用于返回一个用户对象的子集,并给出键值。
下面是一个语法
_.pick(javascriptobject, multiplekeys)
- javascriptobject - javascript对象
- multiplekeys - 键的数组
下面是一个例子
var userinfo = _.pick(user ,'name', 'salary');
输出:
{ name: 'frank', salary:5000 }
Lodash 也有相同的pick() 函数,其工作方式也是如此