javascript - 两个二维数组比较,求不同项
巴扎黑
巴扎黑 2017-04-10 15:16:53
[JavaScript讨论组]

var $a=[{id:1,name:"a"},{id:2,name:"b"},{id:3,name:"c"},{id:4,name:"d"}],
$b=[{id:1,name:"a"},{id:2,name:"b"},{id:3,name:"c"},{id:4,name:"d"},{id:5,name:"e"},{id:6,name:"f"},{id:7,name:"g"},{id:8,name:"h"}];
有两个二维数组,分别是$a和$b,找出两个数组的不同项。
求以最高性能快速解出!

巴扎黑
巴扎黑

全部回复(2)
黄舟
var $a=[{id:1,name:"a"},{id:2,name:"b"},{id:3,name:"c"},{id:4,name:"d"}],
    $b=[{id:1,name:"a"},{id:2,name:"b"},{id:3,name:"c"},{id:4,name:"d"},{id:5,name:"e"},{id:6,name:"f"},{id:7,name:"g"},{id:8,name:"h"}];

console.table( array_diff($a, $b) );

function array_diff(a, b) {
    return diff(a, b).concat( diff(b, a) );
    function diff(a, b) {
        var c = {};
        b.forEach(function(o){ c[ JSON.stringify(o) ] = 0 });
        a.forEach(function(o){ delete c[ JSON.stringify(o) ]; });
        return Object.keys(c).map(JSON.parse);
    }
}
PHP中文网

a,b分别排序后遍历比较

http://underscorejs.org/#isEqual

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号