Arrays 将数组映射到对象数组

Arrays 将数组映射到对象数组,arrays,reactjs,mapping,Arrays,Reactjs,Mapping,我得到了一组如下的对象: const defaultActors = [ { data: {name: "name1"} }, { data: {name: "name2"} } ] const actorsToBeAdded = ["nameX", "nameY"] setCombinedActors( actorsToBeAdded.map((actor)

我得到了一组如下的对象:

const defaultActors = 
[
  {
   data: {name: "name1"}
  },
  {
   data: {name: "name2"}
  }
]
   const actorsToBeAdded = ["nameX", "nameY"]
    setCombinedActors(
    actorsToBeAdded.map((actor) => 
      ({
        data: {name : actor} //data from [nameX, nameY] array
        //also need to spread data from {name: "name1" ...} array
       })
     )
   )
还有这样一个简单的数组:

const defaultActors = 
[
  {
   data: {name: "name1"}
  },
  {
   data: {name: "name2"}
  }
]
   const actorsToBeAdded = ["nameX", "nameY"]
    setCombinedActors(
    actorsToBeAdded.map((actor) => 
      ({
        data: {name : actor} //data from [nameX, nameY] array
        //also need to spread data from {name: "name1" ...} array
       })
     )
   )
有没有一种简单的方法可以做到这一点:

 const combinedActors =  [
      {
       data: {name: "name1"}
      },
      {
       data: {name: "name2"}
      },
      {
       data: {name: "nameX"} //newly added
      },
      {
       data: {name: "nameY"} //newly added
      }
    ]
我正在使用
useState
并尝试获得如下对象的组合数组:

const defaultActors = 
[
  {
   data: {name: "name1"}
  },
  {
   data: {name: "name2"}
  }
]
   const actorsToBeAdded = ["nameX", "nameY"]
    setCombinedActors(
    actorsToBeAdded.map((actor) => 
      ({
        data: {name : actor} //data from [nameX, nameY] array
        //also need to spread data from {name: "name1" ...} array
       })
     )
   )
编辑:谢谢你的回答。Concat确实会生成一个数组,但它是“直接”值和对象的数组,如下所示

["name1", "name2", {Object_with_data},{Object_with_data}]
有什么方法可以到达吗

[{Object_with_data},{Object_with_data}, {Object_with_data},{Object_with_data}]
还是这个

["name1", "name2", "name3", "name4"]
?? 我创建了沙盒:

感谢所有感兴趣的人

actorsToBeAdded.forEach(value=>{
defaultActors.push(
              {data:{name:value}},
              );
}
)

试试看。

您可以使用以下方法对两个阵列进行连接:

setCombinedActors(
海螺(
map(actor=>({data:{name:actor}}))
)    
)
此外,您可能希望仅添加仍不在
defaultActors
数组中的参与者,为此,您可以使用如下过滤器:

setCombinedActors(
海螺(
带头人
.filter(actor=>!defaultActors.some({data}=>data.name==actor))
.map(actor=>({data:{name:actor}}))
)    
)
如果要将所有内容转换为
字符串,请回答编辑

arr.map(elm=>typeof elm==='string'?elm:elm.data.name)
否则,如果您想要对象

arr.map(elm=>typeof elm==='string'?{data:{name:elm}}}:elm)

注意:假设数组的所有元素都是
String
或结构为
{data:{name:'a String'}}

的对象,那么您就有了一个包含对象或字符串的数组,并且您只想将其设置为字符串或对象对吗?是的,这是对的,请检查编辑是否正确。只是一个提醒,不要在一篇文章中发布多个问题。