我有以下的员工数组。我想要创建一个只具有firstName和lastName属性的新数组lastName。我相信我可以用map()方法来完成这个任务,但我不太确定是如何做到的。
let employees = { firstName: 'Collin', lastName: 'Sexton', email: 'exampe@test.com', dob: '03/20/1986' ... }生成的数组应该如下所示:
employeeNames = { firstName: 'Collin', lastName: 'Sexton' }发布于 2021-02-03 18:59:14
可能你的意思是你有一系列的对象。所以你会这么做:
const projected = empArray.map((empItem) => ({
firstName: empItem.firstName,
lastName: empItem.lastName,
}));发布于 2021-02-03 19:07:00
但是,您并不是因此而寻找数组。执行此操作
let { firstName, lastName } = employees;
let employeeNames = { firstName, lastName };我们在这里所做的就是所谓的解构。我们将'firstName‘和'lastName’的值绑定到同名的变量,然后使用这些变量创建一个新的对象。如果没有给定键,它会自动以变量的名称命名它们。
发布于 2021-02-03 18:59:01
employees是一个不可迭代的对象,因此您需要在能够map()一个新对象之前进行转换。
用Object.entries()制作的简单易用
所以..。
// 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]。
https://stackoverflow.com/questions/66033909
复制相似问题