过滤器未返回过滤后的数组

斯凯·博尼韦尔

我有一个像这样的数组:

  let swCharacters = [
    { id: 0, name: "Luke", seriesId: 1 },
    { id: 1, name: "Han", seriesId: 1 },
    { id: 2, name: "Din Djarin", seriesId: 4 },
    { id: 3, name: "Anakin", seriesId: 2 },
    { id: 4, name: "Yoda", seriesId: 1 },
    { id: 5, name: "Grogu", seriesId: 4 }
  ];

我想过滤掉除seriesId为4的那些内容以外的所有内容,因此我发现这对您有帮助:

 swCharacters = swCharacters.filter(x => x.seriesId === 4).map(x => x.seriesId)
        console.log("The Mandalorian: ", swCharacters);
    

但这并没有满足我的需要。

它只是创建一个以4为唯一成员的数组,例如[4,4]。

我需要过滤后的数组看起来像:

[{ id: 3, name: "Din Djarin", seriesId: 4 }, { id: 6, name: "Grogu", seriesId: 4 }]

我可以使用javascript吗?

谢谢!

亚历克斯

您可以直接在swCharacters上调用filter

const res = swCharacters.filter(x => x.seriesId === 4);

let swCharacters = [{
    id: 0,
    name: "Luke",
    seriesId: 1
  },
  {
    id: 1,
    name: "Han",
    seriesId: 1
  },
  {
    id: 2,
    name: "Din Djarin",
    seriesId: 4
  },
  {
    id: 3,
    name: "Anakin",
    seriesId: 2
  },
  {
    id: 4,
    name: "Yoda",
    seriesId: 1
  },
  {
    id: 5,
    name: "Grogu",
    seriesId: 4
  }
];


const res = swCharacters.filter(x => x.seriesId === 4);
console.log(res)

当您将其与地图链接时,将首先应用

map(x => x.seriesId)

这将返回所有seriesId的数组作为过滤器的输入。然后,筛选器将在数组中检查所有值为4的seriesIds并将其作为数组返回。

这将导致

[4, 4]

let swCharacters = [{
    id: 0,
    name: "Luke",
    seriesId: 1
  },
  {
    id: 1,
    name: "Han",
    seriesId: 1
  },
  {
    id: 2,
    name: "Din Djarin",
    seriesId: 4
  },
  {
    id: 3,
    name: "Anakin",
    seriesId: 2
  },
  {
    id: 4,
    name: "Yoda",
    seriesId: 1
  },
  {
    id: 5,
    name: "Grogu",
    seriesId: 4
  }
];

  swCharacters = swCharacters.filter(x => x.seriesId === 4).map(x => x.seriesId)
console.log(swCharacters);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章