【发布时间】:2019-03-03 01:50:16
【问题描述】:
我有一个对象数组,
我想从中有条件地创建另一个对象数组。
例如。 -
var devs = [
{
name: 'A',
age: 26,
tech: ['JavaScript','React'],
addr:{
country:'India',
city:'Pune'
}
},
{
name: 'B',
age: 25,
tech: ['Node','AngularJs'],
addr:{
country:'USA',
city:'NY'
}
},
{
name: 'C',
age: 27,
tech: ['React','AWS'],
addr:{
country:'UK',
city:'London'
}
}
]
我想要一个对象数组,这些对象的“技术”字段数组中有 “React”,
并且只想显示他们的姓名和技术,
以下是预期的输出 -
[
{
name: 'A',
tech: ['JavaScript','React']
},
{
name: 'C',
tech: ['Java','React'],
}
]
我知道可以使用条件过滤方法,
但是如何从对象数组中删除不必要的字段?
这里可以使用map方法吗?如果是,我该如何实现?
以下是我的半熟代码 -
var filteredDevs = devs.filter(temp => temp.tech.includes('React'));
【问题讨论】:
-
重新生成你的数组
-
正如您在标题中猜到的,是的,您应该使用
map。你试过了吗? -
你从哪里得到
'React'来自'C'? -
@Bergi 我知道它必须使用,但不知道如何在对象数组上实现,仍在学习:D
-
@AniruddhaRaje 编写一个函数,该函数可以采用其中一个对象并返回所需形状的新对象。然后将该函数传递给
map
标签: javascript arrays