在javascript中获取一个对象属性子集的5种方法

274 阅读1分钟

在这个简短的教程中,我们将学习如何通过实例来创建一个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() 函数,其工作方式也是如此