最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何使用数组过滤数组数组?

IT培训 admin 3浏览 0评论

如何使用数组过滤数组数组?

如何针对数组(myNumbers)过滤数组数组(result)以仅获取result中每个数组中myNumbers中出现的值?

具体来说,给出:

var result = [02, 03, 04, 06, 07, 11, 12, 13];

var myNumbers = [
    [01, 03, 04, 05, 09, 10, 12, 14],
    [01, 03, 04, 05, 06, 08, 10, 12],
    [01, 02, 04, 05, 06, 08, 10, 12],
    [01, 03, 04, 05, 06, 09, 12, 13],
    [01, 02, 03, 05, 06, 08, 10, 11]
];

输出应该是:

[
    [03, 04, 12],
    [03, 04, 06, 12],
    [02, 04, 06, 12],
    [03, 04, 06, 12, 13],
    [02, 03, 06, 11],
]

我一次只能过滤一个数组:

// This only filters it for myNumbers[0]
var confereResult = result.filter(function (number) {
    if (myNumbers[0].indexOf(number) == -1)
            return number;
    console.log(number);
});

我如何通过整个列表呢?

回答如下:

您可以映射过滤的结果。

var filter = [02, 03, 04, 06, 07, 11, 12, 13],
    array = [[01, 03, 04, 05, 09, 10, 12, 14], [01, 03, 04, 05, 06, 08, 10, 12], [01, 02, 04, 05, 06, 08, 10, 12], [01, 03, 04, 05, 06, 09, 12, 13], [01, 02, 03, 05, 06, 08, 10, 11]],
    result = array.map(a => filter.filter(f => a.includes(f)));

console.log(result.map(a => a.join(' ')));
.as-console-wrapper { max-height: 100% !important; top: 0; }

如何使用数组过滤数组数组?

如何针对数组(myNumbers)过滤数组数组(result)以仅获取result中每个数组中myNumbers中出现的值?

具体来说,给出:

var result = [02, 03, 04, 06, 07, 11, 12, 13];

var myNumbers = [
    [01, 03, 04, 05, 09, 10, 12, 14],
    [01, 03, 04, 05, 06, 08, 10, 12],
    [01, 02, 04, 05, 06, 08, 10, 12],
    [01, 03, 04, 05, 06, 09, 12, 13],
    [01, 02, 03, 05, 06, 08, 10, 11]
];

输出应该是:

[
    [03, 04, 12],
    [03, 04, 06, 12],
    [02, 04, 06, 12],
    [03, 04, 06, 12, 13],
    [02, 03, 06, 11],
]

我一次只能过滤一个数组:

// This only filters it for myNumbers[0]
var confereResult = result.filter(function (number) {
    if (myNumbers[0].indexOf(number) == -1)
            return number;
    console.log(number);
});

我如何通过整个列表呢?

回答如下:

您可以映射过滤的结果。

var filter = [02, 03, 04, 06, 07, 11, 12, 13],
    array = [[01, 03, 04, 05, 09, 10, 12, 14], [01, 03, 04, 05, 06, 08, 10, 12], [01, 02, 04, 05, 06, 08, 10, 12], [01, 03, 04, 05, 06, 09, 12, 13], [01, 02, 03, 05, 06, 08, 10, 11]],
    result = array.map(a => filter.filter(f => a.includes(f)));

console.log(result.map(a => a.join(' ')));
.as-console-wrapper { max-height: 100% !important; top: 0; }

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论