映射数组键值

时间:2021-01-04 06:59:13

标签: javascript arrays

我的数组的键值是另一个数组。我只想过滤数组值。

这是我的数组:

const array = [{
    work: [{
      day: 'Monday',
      number: 8
    }]
  },
  {
    work: [{
      day: 'Tuesday',
      number: 5
    }]
  },
  {
    work: [{
      day: 'Saturday',
      number: 4
    }]
  },
]

我想要的数组是:

const desiredArray = [{
  day: 'Monday',
  number: 8
}, {
  day: 'Tuesday',
  number: 5
}, {
  day: 'Saturday',
  number: 4
}];

我试过了

const desiredArray  = Object.values(array)
const desiredArray  = Object.keys(array).map(item => array[item])

都没有奏效。

3 个答案:

答案 0 :(得分:2)

您可以使用 .flatMap() 获得所需的输出:

const input = [{
  work: [{ day: 'Monday', number: 8 }]
}, {
  work: [{ day: 'Tuesday', number: 5 }]
}, {
  work: [{ day: 'Saturday', number: 4 }]
}];

const output = input.flatMap(({ work }) => work);

console.log(output);
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:0)

您可以使用 map 从给定数组返回一个新数组。

const array = [{
    work: [{
      day: 'Monday',
      number: 8
    }]
  },
  {
    work: [{
      day: 'Tuesday',
      number: 5
    }]
  },
  {
    work: [{
      day: 'Saturday',
      number: 4
    }]
  },
]

const desired = array.map(item => item.work[0]);

console.log(desired);

答案 2 :(得分:0)

使用 mapflat


array.map(Object.values).flat(2)

const array = [{
    work: [{
      day: 'Monday',
      number: 8
    }]
  },
  {
    work: [{
      day: 'Tuesday',
      number: 5
    }]
  },
  {
    work: [{
      day: 'Saturday',
      number: 4
    }]
  },
]

console.log(array.map(Object.values).flat(2))

相关问题