Javascript 当来自两个diff对象的两个值匹配时,向对象添加新的键/对

Javascript 当来自两个diff对象的两个值匹配时,向对象添加新的键/对,javascript,arrays,reactjs,object,ecmascript-6,Javascript,Arrays,Reactjs,Object,Ecmascript 6,我已经映射并过滤了两个对象。我的思想遇到了障碍。当值匹配时,我看不到如何将键/值从一个对象添加到另一个对象 这种类型对我来说是相当新鲜的,并且会让我的逻辑思维陷入困境,所以任何帮助都将不胜感激 我想将'lat'和'lon'值以及'TodaySdapAtPostCode'对象中的键添加到'data'对象中 这应该在邮政编码匹配时进行 我用的是我以前用过的方法,但最后的阶段是不同的,很难弄清楚 代码如下: addLatLon = (location, latLon) => {

我已经映射并过滤了两个对象。我的思想遇到了障碍。当值匹配时,我看不到如何将键/值从一个对象添加到另一个对象

这种类型对我来说是相当新鲜的,并且会让我的逻辑思维陷入困境,所以任何帮助都将不胜感激

我想将'lat'和'lon'值以及'TodaySdapAtPostCode'对象中的键添加到'data'对象中

这应该在邮政编码匹配时进行

我用的是我以前用过的方法,但最后的阶段是不同的,很难弄清楚

代码如下:

addLatLon = (location, latLon) => {
        return location.map(compiledDataObj => {
            const objectsWithSameLocation = latLon.filter(dataObj => {
                return dataObj.postcode === compiledDataObj.postcode;
            });

            objectsWithSameLocation.map(obj => {
                //here we want to match the postcode of the object we're running through
                // so its like
            compiledDataObj.postcode[obj.postcode]

                // return console.log('location.postcode', location.map(i => i.postcode), 'obj.postcode', obj.postcode)
            });
        });
    };

以下是两个数据集。第一个版本只是部分版本,因为这将足以实现逻辑

下面是:“数据”


[
    {
        "location": "City of London",
        "postcode": "EC1A 7BE",
        "year": {
            "10": "464436",
            "11": "442413",
            "12": "525723",
            "13": "465451",
            "14": "625001",
            "15": "783667",
            "16": "736788",
            "17": "820305",
            "18": "802129",
            "19": "864034",
            "95": "91449",
            "96": "108999",
            "97": "116343",
            "98": "124382",
            "99": "149143",
            "00": "173738",
            "01": "284262",
            "02": "344239",
            "03": "261645",
            "04": "326913",
            "05": "330363",
            "06": "316121",
            "07": "360923",
            "08": "471861",
            "09": "400317"
        }
    },
    {
        "location": "Barking & Dagenham",
        "postcode": "RM9 4TP",
        "year": {
            "10": "162905",
            "11": "163821",
            "12": "163899",
            "13": "167919",
            "14": "184884",
            "15": "220070",
            "16": "258758",
            "17": "282441",
            "18": "291548",
            "19": "298333",
            "95": "50460",
            "96": "50828",
            "97": "54459",
            "98": "57559",
            "99": "64532",
            "00": "71079",
            "01": "82343",
            "02": "98713",
            "03": "134750",
            "04": "150115",
            "05": "164484",
            "06": "162340",
            "07": "176577",
            "08": "194235",
            "09": "166798"
        }
    }]
这是第二个数据集:“TodaySdapPostCode”

 [{
        "postcode": "EC1A 7BE",
        "longitude": -0.100404,
        "latitude": 51.51775
    },
    {
        "postcode": "RM9 4TP",
        "longitude": 0.127884,
        "latitude": 51.539774
    },
    {
        "postcode": "EN5 5RP",
        "longitude": -0.194074,
        "latitude": 51.65044
    },
    {
        "postcode": "DA16 3DN",
        "longitude": 0.102535,
        "latitude": 51.464737
    },
    {
        "postcode": "HA9 9AA",
        "longitude": -0.279243,
        "latitude": 51.563322
    },
    {
        "postcode": "BR1 3NN",
        "longitude": 0.017131,
        "latitude": 51.40827
    },
    {
        "postcode": "NW1 8QL",
        "longitude": -0.142696,
        "latitude": 51.53929
    },
    {
        "postcode": "CR2 7PA",
        "longitude": -0.094105,
        "latitude": 51.36292
    }]
我想添加

如上所述,这是预期的结果,我不能达到预期的结果,我现在迷路了

“我想将'lat'和'lon'值以及'todaysDataPostcode'对象中的键添加到'data'对象中


这应该在邮政编码匹配时进行。”

这就是你一直在追求的吗

const arr1=[{“地点”:“伦敦市”,“邮政编码”:“EC1A 7BE”,“年份”:“10”:“464436”,“11”:“442413”,“12”:“525723”,“13”:“465451”,“14”:“625001”,“15”:“783667”,“16”:“736788”,“17”:“820305”,“18”:“802129”,“19”:“864034”,“95”:“91449”,“96”:“108999”,“97”:“116343”,“98”:“124382”,“99”:“14914343”,“00”:“173738”,“01”284262”,“16403”,“2603”:“326913”、“05”:“330363”、“06”:“316121”、“07”:“360923”、“08”:“471861”、“09”:“400317”}、{“地点”:“Barking&Dagenham”、“邮政编码”:“RM9 4TP”、“年份”:{“10”:“162905”、“11”:“163821”、“12”:“163899”、“13”:“167919”、“14”:“184884”、“15”:“220070”、“16”:“258758”、“17”:“282441”、“18”:“291548”、“19”:“298333”、“95”:“50460”、“50828”、“549”、“539”:“539”:”00":"71079","01":"82343","02":"98713","03":"134750","04":"150115","05":"164484","06":"162340","07":"176577","08":"194235","09":"166798"}}];
const arr2=[{“邮政编码”:“EC1A 7BE”,“经度”:-0.100404,“纬度”:51.51775},{“邮政编码”:“RM9 4TP”,“经度”:0.127884,“纬度”:51.539774},{“邮政编码”:“EN5 5RP”,“经度”:-0.194074,“纬度”:51.65044},{“邮政编码”:“DA16 3DN”,“经度”:0.102535,“纬度”:51.464737},{“邮政编码”:“HA9 9AA”,“经度”:0.279,“经度”:51.563322}邮政编码:“BR1 3NN”,“经度”:0.017131,“纬度”:51.40827},{“邮政编码”:“NW1 8QL”,“经度”:-0.142696,“纬度”:51.53929},{“邮政编码”:“CR2 7PA”,“经度”:-0.094105,“纬度”:51.36292};
const merged=arr1.map(e=>(coords=arr2.find(ee=>ee.postcode==e.postcode),Object.assign(e,{经度:coords['longitude'],纬度:coords['latitude']}));
console.log(合并);

.as console wrapper{min height:100%}
Lodash可以帮助您按键搜索是否存在反对“\u Lodash”的论点?我的应用程序的性能会受到影响,不会?此外,我不一定要了解这一切是如何工作的,也不一定要了解逻辑(n00b,如果我的问题没有强调这一点)您好,是的,我尝试了您的解决方案,效果很好。拼图的最后一块现在已修补:)