返回只包含与给定值匹配的元素的筛选数组

Return filtered array with only elements that match given value

本文关键字:元素 筛选 数组 包含 返回      更新时间:2023-09-26

我想要一个遍历posts数组的方法,并返回一个只包含与userId属性的某个值匹配的元素的新数组。

例如:

let postsArr = [
      {
        "userId": 1,
        "id": 1
      },
      {
        "userId": 1,
        "id": 2
      },
      {
        "userId": 2,
        "id": 3
      },
      {
        "userId": 2,
        "id": 4
      },
      {
        "userId": 3,
        "id": 5
      }
    ]

假设我只想返回具有userId: 2的项目。

(类似…)

let filteredArr = postsArr.method( post => post.userId === 2)

这将(理想情况下)返回:

[
      {
        "userId": 2,
        "id": 3
      },
      {
        "userId": 2,
        "id": 4
      }
    ]

我确信它会是。map()或。filter()之类的东西,但我可以很清楚地知道如何做,或者在这种情况下最好的方法是什么。

感谢您的帮助。

说实在的

let postsArr = [
      {
        "userId": 1,
        "id": 1
      },
      {
        "userId": 1,
        "id": 2
      },
      {
        "userId": 2,
        "id": 3
      },
      {
        "userId": 2,
        "id": 4
      },
      {
        "userId": 3,
        "id": 5
      }
    ];
var farray = postsArr.filter((a) => a.userId === 2);
console.log(farray);

我们过去常常这样做。

var newarray = postsArr.filter(function(obj){
     return obj.userId === 2
})