javascript - 数字列表到数字列表

标签 javascript jquery arrays filter arrow-functions

我有一个数字列表,格式如下:

[[1,2],[3,4],[5,1]]

我期待得到下一个输出:

[1,2,3,4,5]

这是我当前方法的一个示例:

<!DOCTYPE html>
<html>
<head>
    <title>Expected - [1,2,3,4,5,6,7,8,9,10]</title>
</head>
<body>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function()
        {
            // Expected - [1,2,3,4,5,6,7,8,9,10];
            var array_of_arrays = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [1, 2], [3, 4], [5, 6], [7, 8], [9, 10]];
            console.log(array_of_arrays);

            // Section 1 - code does what I expect. I would like something like Section 2.
            var array_of_values = [];
            array_of_arrays.map((x) => {
                x.map((y) => {
                    if (array_of_values.indexOf(y) == -1)
                        array_of_values.push(y)
                })
            });
            console.log(array_of_values);

            // Section 2 - This code does not do what I expect.
            var resp = array_of_arrays.map(x => x.map(y => y));
            console.log(resp);
        });
    </script>
</body>
</html>

最佳答案

一种方法可以使用 reduce() 来完成用set作为累加器:

let input = [[1,2],[3,4],[5,1]];

let res = input.reduce((acc, a) =>
{
    a.forEach(x => acc.add(x));
    return acc;
}, new Set());

console.log(Array.from(res));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

另一种方法是使用新的 flat()方法:

let input = [[1,2],[3,4],[5,1]];
let res = new Set(input.flat());
console.log(Array.from(res));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

关于javascript - 数字列表到数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54561375/

相关文章:

javascript - 使用 JQuery 选择器在 DOM 中先前出现的元素

javascript - 增加 4,而不是 1

javascript - 如何使用 jQuery/JavaScript 仅在特定页面上将 h3 更改为 h2

jquery - 如何在 jQuery Mobile 中从外部 api 加载页面内容?

javascript - 拼接从 AngularJS 中的 ng-repeat 中删除错误的对象

javascript - 使用map,如何将对象属性中的yes和no字符串转换为javascript中的 bool true和false值

javascript - 使 Javascript 数组元素可以通过附加键访问

javascript - 在 Javascript 中加载时读取大型 (1G) 二进制文件

php - 使用 PHP 数组数据创建和操作 HTML 表单

c++ - C++中的模板排序