Javascript 如何返回对象数组中的所有项

Javascript 如何返回对象数组中的所有项,javascript,arrays,json,Javascript,Arrays,Json,我正在尝试返回我的项目中数组的所有项目,这是我的数组: var data = [ { "id": 275, "nome": "name", "item": [ { "idCentro": 2, "date": "2018-06-05", "tipo": "D" }, { "

我正在尝试返回我的
项目
中数组的所有项目,这是我的数组:

    var data =  [
      {
        "id": 275,
        "nome": "name",
        "item": [
          {
            "idCentro": 2,
            "date": "2018-06-05",
            "tipo": "D"
          },
          {
            "idCentro": 6,
            "date": "2017-06-05",
            "tipo": "G"
          },
          {
            "idCentro": 18,
            "date": "2016-06-05",
            "tipo": "G"
          },
          {
            "idCentro": 29,
            "date": "2019-06-05",
            "tipo": "D"
          }
        ]
      }
    ]
因此,要获取
item
中的所有项目,但它不起作用:

let listaT = data.filter(item => {
  return{
    idCentro: item.item.idCentro,
    date: item.item.date,
    tipo: item.item.tipo,
  }
})
我想得到这样的回报:

[
  {
    "idCentro": 2,
    "date": "2018-06-05",
    "tipo": "D"
  },
  {
    "idCentroCusto": 6,
    "date": "2017-06-05",
    "tipo": "G"
  },
  {
    "idCentroCusto": 18,
    "date": "2016-06-05",
    "tipo": "G"
  },
  {
    "idCentroCusto": 29,
    "date": "2019-06-05",
    "tipo": "D"
  }
]

如何实现这一点?

您可以展开所有项目数组

var数据=[{id:275,nome:“name”,条目:[{idCentro:2,日期:“2018-06-05”,tipo:“D”},{idCentro:6,日期:“2017-06-05”,tipo:“G”},{idCentro:18,日期:“2016-06-05”,tipo:“G”},{idCentro:29,日期:“2019-06-05”,tipo:“D”},
结果=数据.reduce((r,{item})=>[…r,…item]);
控制台日志(结果)

.as控制台包装{max height:100%!important;top:0;}
如果只想获取项目数组,只需

var array = data[0].item
该方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。它不会修改数组项

您可以使用和

var数据=[
{
“id”:275,
“nome”:“name”,
“项目”:[
{
“idCentro”:2,
“日期”:“2018-06-05”,
"tipo:"D"
},
{
“idCentro”:6,
“日期”:“2017-06-05”,
“tipo”:“G”
},
{
“idCentro”:18,
“日期”:“2016-06-05”,
“tipo”:“G”
},
{
“idCentro”:29,
“日期”:“2019-06-05”,
"tipo:"D"
}
]
}
]
让listaT=data.map(({item})=>item.flat();
console.log(listaT)与类似的代码一起使用。这也使用了

reduce()方法对数组的每个成员执行一个reducer函数(由您提供),从而产生一个输出值

const data=[{“id”:275,“nome”:“name”,“item”:[{“idCentro”:2,“date”:“2018-06-05”,“tipo”:“D”},{“idCentro”:6,“date”:“2017-06-05”,“tipo”:“G”},{“idCentro”:18,“date”:“2016-06-05”,“tipo”:“G”},{“idCentro”:29,“date”:“2019-06-05”,“tipo”:“D”}]
const res=data.reduce((a,{item})=>a.concat(item),[]);

控制台日志(res)
数据[0]。项
,但使用一个元素的数组有什么意义?@georg有多种原因,例如,无法控制数据格式,因此不必检查数组或单个对象等。如图所示,没有意义。但是人们通常不会问他们需要知道什么,只是问他们认为他们需要知道什么。可能是…的重复,或者只是
result=data[0]。item
:)可能数据有多个对象,那么你需要去掉嵌套的数组。我在想,这会更“健壮”,简单地说,完成了!非常感谢你的帮助!我