代码之家  ›  专栏  ›  技术社区  ›  Chris Chong

如何使用Ramda测试对象集中是否存在值

  •  0
  • Chris Chong  · 技术社区  · 8 年前

    我试图找出如何查看从API返回的一组对象中是否存在特定值,在本例中为“/db/User/10”。

    从控制台从API返回的数据。日志(测试)

    Set {
      Object {
        "UserData": "/db/UserData/509c404f-ffa1-49d3-a161-b9eb5b2ebb14",
        "UserDataPrivate": "/db/UserDataPrivate/26b7d879-4403-4135-ab44-b23e5244606b",
        "UserStatus": "/db/UserStatus/cb50eae0-e254-4d8c-915a-674fd314fff3",
        "createdAt": "2017-10-20T21:03:26.575Z",
        "id": "/db/User/68",
        "inactive": null,
        "updatedAt": "2017-10-20T23:34:12.179Z",
        "username": "15031111234",
        "version": 4,
      },
      Object {
        "UserData": "/db/UserData/a3dded63-4e0b-4841-b201-4c96dad1844d",
        "UserDataPrivate": "/db/UserDataPrivate/6037a718-e33f-4945-b2d0-ca4c11fa4f13",
        "UserStatus": null,
        "createdAt": "2017-09-21T18:26:31.089Z",
        "id": "/db/User/10",
        "inactive": false,
        "updatedAt": "2017-10-18T20:10:06.681Z",
        "username": "15038304313",
        "version": 19,
      },
    }
    
    var searchbyID = propEq('id', '/db/User/10');
    result = filter(searchbyID, test);
    console.log(result)
    

    这是拉姆达的正确方法吗?

    1 回复  |  直到 8 年前
        1
  •  2
  •   garajo    8 年前

    您需要将集合转换为数组。

    var searchbyID = propEq('id', '/db/User/10');
    result = filter(searchbyID, Array.from(test));
    console.log(result)
    

    它不会返回true,但会返回匹配的对象。你可能想要 find 相反