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