如何从jquery中的两个json数组获取元素 [英] How to take element from two json arrays in jquery

查看:216
本文介绍了如何从jquery中的两个json数组获取元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

arr1 = [
    {Lattitude: '52,4043000', Location: 'a2', Longitude: '55,7181815'},
    {Lattitude: '52,3882320', Location: 'b2', Longitude: '55,7225500'},
    {Lattitude: '52,4041184', Location: 'c2', Longitude: '55,7172296'},
    {Lattitude: '52,3996194', Location: 'd2', Longitude: '55,7200249'},
];

arr2 = [
    {Lattitude: '52,3882320', Location: 'b2', Longitude: '55,7225500'},
    {Lattitude: '52,4041184', Location: 'c2', Longitude: '55,7172296'},
    {Lattitude: '52,3996194', Location: 'd2', Longitude: '55,7200249'}
];

我如何比较两个json数组arr1,arr2一个只是这个元素 {Lattitude:'52,4043000',Location:'a2',Longitude:'55,7181815'}
来自arr1,在arr2中没有

how i can compare two json arrays arr1,arr2 an get just this element {Lattitude: '52,4043000', Location: 'a2', Longitude: '55,7181815'} from arr1 which no in arr2

我会尝试这样做

     function objDiff(arr1, arr2) {
                    var resultArray = [];


for (var i = 0; i < arr1.length; i++) {
                        for (var j = 0; arr2.length; j++) {
          if (parseFloat(parseFloat(arr1[i].Lattitude).toFixed(4)) != parseFloat(parseFloat(arr2[i].Lattitude).toFixed(4)) &&
                                parseFloat(parseFloat(arr1[i].Longitude).toFixed(4)) != parseFloat(parseFloat(arr2[i].Longitude).toFixed(4))) {
                                resultArray.push(arr1[i]);
                            }
                        }
                    }

                    return resultArray;
                }

但我的功能不工作,我不知道为什么

but my function not works, i don`t know why

推荐答案

尝试此操作,

        function compareArr(arr1, arr2) {
            var longArray = arr1.length >= arr2.length ? arr1 : arr2;
            var shortArray = arr1.length < arr2.length ? arr1 : arr2;

            return resultArr = longArray.filter(function (v) {
                return shortArray.filter(function (iv) {
                    return v.Lattitude === iv.Lattitude
                            && v.Location === iv.Location
                            && v.Longitude === iv.Longitude;
                }).length === 0;
            });
        }

        var resultArr = compareArr(arr2, arr1);

在任何序列中将两个数组传递给此函数,结果将是相同的。

Pass two array to this function in any sequense, the result will be same.

这篇关于如何从jquery中的两个json数组获取元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆