首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >结合使用.includes和.map查找匹配值

结合使用.includes和.map查找匹配值
EN

Stack Overflow用户
提问于 2018-07-27 20:20:28
回答 1查看 1.3K关注 0票数 0

我正在尝试测试一个数组是否包含另一个数组中存在的id。下面是第一个数组:

代码语言:javascript
运行
复制
var ids = [
    "N06Jrz5hx6Q9bcVDBBUrF3GKSTp2",
    "eLLfNlWLkTcImTRqrYnU0nWuu9P2"
]

下面是user对象的一个示例:

代码语言:javascript
运行
复制
var userExample = {
    "category": "Chemia",
    "coins": 100,
    "friends": {},
    "level": "Liceum",
    "newAnswers": false,
    "nickname": "czainusek",
    "notifications": true,
    "safety": true,
    "tagID": "drawable/icon_other1",
    "tasksUploaded": 0,
    "works": {
        "-LI1z-yO4MJnPwrdwHGl": "-LI1z-tB6EpqIhJwzchP",
        "-LIHAwCpc84UQqGeT1bU": "-LIHAw8RuTZxfgz0ef8G",
        "-LIHB2Ov5B-4XqpM79Av": "-LIHB2IPmMqOxa3UPFxs"
    },
    "id": "Nqez1dKRJ6aEpOb4BuUOK75iJoJ2"
}

我有一个上述对象的数组。它们看起来都是这样的:

代码语言:javascript
运行
复制
var usersExamples = [
    {
        "category": "Chemia",
        "coins": 100,
        "friends": {},
        "level": "Liceum",
        "newAnswers": false,
        "nickname": "czainusek",
        "notifications": true,
        "safety": true,
        "tagID": "drawable/icon_other1",
        "tasksUploaded": 0,
        "works": {
            "-LI1z-yO4MJnPwrdwHGl": "-LI1z-tB6EpqIhJwzchP",
            "-LIHAwCpc84UQqGeT1bU": "-LIHAw8RuTZxfgz0ef8G",
            "-LIHB2Ov5B-4XqpM79Av": "-LIHB2IPmMqOxa3UPFxs"
        },
        "id": "Nqez1dKRJ6aEpOb4BuUOK75iJoJ2"
    },
    {
        "coins": 20,
        "friends": {},
        "level": "Gimnazjum",
        "newAnswers": false,
        "nickname": "Tomasz ",
        "notifications": true,
        "safety": true,
        "tagID": "drawable/emot_icons1",
        "tasksUploaded": 5,
        "id": "SAlVGjXIagdDuJrHYO4i6LwzUql2"
    }
]

因此,知道这一点后,我尝试了这样的方法:

代码语言:javascript
运行
复制
console.log(reportIds.includes(users.map(user => user.id)));

这返回了false。但是如果我尝试这样的id:

代码语言:javascript
运行
复制
console.log(reportIds.includes('N06Jrz5hx6Q9bcVDBBUrF3GKSTp2'));

它返回true。

则存在具有所述Id的对象。我手动检查了身份证。我试过这个:

代码语言:javascript
运行
复制
console.log(reportIds.includes(['8VbBNBDrT1Z3kmyaQzy6LqskcOT2', 'N06Jrz5hx6Q9bcVDBBUrF3GKSTp2'].map(id => id)));

但是这返回了false。

与此相同:

代码语言:javascript
运行
复制
console.log(reportIds.includes(['8VbBNBDrT1Z3kmyaQzy6LqskcOT2', 'N06Jrz5hx6Q9bcVDBBUrF3GKSTp2']));

那么,如何检查ids数组中有哪些I呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-27 20:23:23

为此,您可以使用Array#filterArray#includes的组合:

代码语言:javascript
运行
复制
let ids = [
    "N06Jrz5hx6Q9bcVDBBUrF3GKSTp2",
    "eLLfNlWLkTcImTRqrYnU0nWuu9P2"
];

let usersExamples = [
    {
        "id": "Nqez1dKRJ6aEpOb4BuUOK75iJoJ2"
    },
    {
        "id": "SAlVGjXIagdDuJrHYO4i6LwzUql2"
    },
    {
        "id": "eLLfNlWLkTcImTRqrYnU0nWuu9P2"
    }
];

let result = usersExamples.filter(u => ids.includes(u.id));
console.log(result);

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51557853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档