首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将特定属性从数组映射到新数组

将特定属性从数组映射到新数组
EN

Stack Overflow用户
提问于 2021-02-03 18:52:03
回答 4查看 50关注 0票数 0

我有以下的员工数组。我想要创建一个只具有firstName和lastName属性的新数组lastName。我相信我可以用map()方法来完成这个任务,但我不太确定是如何做到的。

代码语言:javascript
复制
let employees = { firstName: 'Collin', lastName: 'Sexton', email: 'exampe@test.com', dob: '03/20/1986' ... }

生成的数组应该如下所示:

代码语言:javascript
复制
employeeNames = { firstName: 'Collin', lastName: 'Sexton' }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-02-03 18:59:14

可能你的意思是你有一系列的对象。所以你会这么做:

代码语言:javascript
复制
const projected = empArray.map((empItem) => ({
    firstName: empItem.firstName,
    lastName: empItem.lastName,
}));
票数 0
EN

Stack Overflow用户

发布于 2021-02-03 19:07:00

但是,您并不是因此而寻找数组。执行此操作

代码语言:javascript
复制
let { firstName, lastName } = employees;
let employeeNames = { firstName, lastName };

我们在这里所做的就是所谓的解构。我们将'firstName‘和'lastName’的值绑定到同名的变量,然后使用这些变量创建一个新的对象。如果没有给定键,它会自动以变量的名称命名它们。

票数 1
EN

Stack Overflow用户

发布于 2021-02-03 18:59:01

employees是一个不可迭代的对象,因此您需要在能够map()一个新对象之前进行转换。

Object.entries()制作的简单易用

所以..。

代码语言:javascript
复制
// key is the object key while value is the object value of corresponding key
let newArray = Object.entries(employees).map((key, value) => {
   let arrayEntry;
   if (key === 'firstName' || key === 'lastName') {
      newEntry = value;
   }
   return arrayEntry;
});

然后,新数组应该输出到[John, Doe, Jane, Doe, name, lastname]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66033909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档