比较不同大小和尺寸的数组

时间:2015-07-23 16:00:25

标签: javascript arrays algorithm iteration

所以这是提议的问题。

比较两个数组并返回一个新数组,其中包含两个原始数组中都找不到的任何项。

这是我到目前为止所拥有的。

function diff(arr1, arr2) {
    for (var a in arr1) {
        for (var b in arr2) {
            if (arr1[a] == arr2[b]){
                arr2.splice(b,1);
            }
        }
    }
    return arr2;
}

diff([1, 2, 3, 5], [1, 2, 3, 4, 5]);

此代码基本上只是将第一个数组的每个值与第二个数组进行比较。如果找到匹配,则使用拼接功能删除该项目。

这适用于一维数组,但如何使其适用于多维数组,例如:

diff([1, 2, 3, 5], [1, [2, 3], [4, 5]]);

如果这些数组不仅仅是两个维度而是任意数量的维度,那该怎么办?无论设置如何,我都应该遍历每个数组的每个元素。

1 个答案:

答案 0 :(得分:0)

使用lodash,你可以这样做:



<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.min.js"></script>
<body></body>
&#13;
'use strict';
var fs = require('fs');
// fs.mkdirSync('folda'); // success
fs.mkdirSync('/parent-not-exists/folda'); 
// Failed,if parent folder isn't exists,will throw 
// Error: ENOENT, no such file or directory '/parent-not-exists/folda'
&#13;
&#13;
&#13;