Javascript 我需要将键值对的对象转换为单独的列表项
我从一个api调用中获取数据,并接收一个键值对对象。我需要将这个对象拆分,以便每个键值对都成为无序列表中它自己的列表项Javascript 我需要将键值对的对象转换为单独的列表项,javascript,json,api,key-value,Javascript,Json,Api,Key Value,我从一个api调用中获取数据,并接收一个键值对对象。我需要将这个对象拆分,以便每个键值对都成为无序列表中它自己的列表项 { "base": "USD", "date": "2018-05-30", "rates": { "AUD": 1.3247077029, "BGN": 1.6813961486, "BRL": 3.7063273728, "CAD": 1.2975412655, "CHF
{
"base": "USD",
"date": "2018-05-30",
"rates": {
"AUD": 1.3247077029,
"BGN": 1.6813961486,
"BRL": 3.7063273728,
"CAD": 1.2975412655,
"CHF": 0.9897696011,
"CNY": 6.4196182944,
"CZK": 22.2102819807,
"DKK": 6.3988995873,
"GBP": 0.7522352132,
"HKD": 7.8462861073,
"HRK": 6.3525618982,
"HUF": 274.7334938102,
"IDR": 13947.6530261348,
"ILS": 3.5790061898,
"INR": 67.3899587345,
"ISK": 105.6568088033,
"JPY": 108.9752407153,
"KRW": 1079.272696011,
"MXN": 19.6711657497,
"MYR": 3.9854711142,
"NOK": 8.2069291609,
"NZD": 1.4344910591,
"PHP": 52.6203576341,
"PLN": 3.7083046768,
"RON": 3.9926925722,
"RUB": 62.2279917469,
"SEK": 8.8362276479,
"SGD": 1.3400962861,
"THB": 32.0598349381,
"TRY": 4.4547799175,
"USD": 1,
"ZAR": 12.5649931224,
"EUR": 0.8596973865
}
}
^^^这是我从api收到的数据,我希望费率中的每一行都显示为自己的列表项。我应该使用for…in循环还是有办法使用Object.keys/Object.values来分割每个键值对?从
rates
对象中获取所有键值,然后使用键值(国家/地区代码)作为键值并从原始rates
对象中创建一个新数组
const data={“base”:“USD”,“date”:“2018-05-30”,“rates”:{“AUD”:1.3247077029,“BGN”:1.6813961486,“BRL”:3.7063273728,“CAD”:1.2975412655,“CHF”:.9897696011,“CNY”:6.4196182944,“CZK”:22.2102819807,“DKK”:6.3988995873,“GBP”:.7522352132,“HKD”:7.8462861073,“HRK”:6.352582,“HUF”:2742.7365938,“IDRs”:13961908:67.3899587345,“冰岛克朗”:105.656808033,“日元”:108.9752407153,“韩元”:1079.272696011,“墨西哥比索”:19.671165749,“马来西亚卢比”:3.9854711142,“挪威克朗”:8.2069291609,“新西兰元”:1.4344910591,“菲律宾比索”:52.62035576341,“印尼国家电力公司”:3.7083046768,“罗马尼亚卢比”:3.9912225722,“瑞典克朗”:62.2279917469,“瑞典克朗”:8.8362276479,“瑞典克朗”:1.340962881,“泰铢”:9834934欧元:47934美元”:.8596973865}};
常量键=对象键(数据率);
const rates=keys.map(key=>({[key]:data.rates[key]}));
控制台日志(费率)代码>您还可以使用、和方法来获得所需的结果
演示
const obj={“base”:“USD”,“date”:“2018-05-30”,“rates”:{“AUD”:1.3247077029,“BGN”:1.6813961486,“BRL”:3.7063273728,“CAD”:1.2975412655,“CHF”:.9897696011,“CNY”:6.4196182944,“CZK”:22.2102819807,“DKK”:6.3988995873,“GBP”:.7522352132,“HKD”:7.8462861073,“HRK”:6.35258982,“HUF”:2742.73938,“IDRs”:13934818.89348“IRS”:139348:67.3899587345,“冰岛克朗”:105.656808033,“日元”:108.9752407153,“韩元”:1079.272696011,“墨西哥比索”:19.671165749,“马来西亚卢比”:3.9854711142,“挪威克朗”:8.2069291609,“新西兰元”:1.4344910591,“菲律宾比索”:52.62035576341,“印尼国家电力公司”:3.7083046768,“罗马尼亚卢比”:3.9912225722,“瑞典克朗”:62.2279917469,“瑞典克朗”:8.8362276479,“瑞典克朗”:1.340962881,“泰铢”:9834934欧元:47934美元”:.8596973865}};
让result=Object.entries(obj.rates).reduce((r,v)=>r.concat({[v[0]]:v[1]}),[]);
控制台日志(结果)代码>
。作为控制台包装{max height:100%!important;top:0;}
您可以使用键/值对直接将条目与新对象映射
var数据={基数:“美元”,日期:“2018-05-30”,费率:1.7063273728,CAD:1.2975412655,CHF:0.989797696011,CHF:0.989797696011,CNY:1.292975412655,CHF:0.989797970:0.989797979:1.987,AUD:1.324:1.327,AUD:1.327:3.377:3.37377:3,CAD:1.297575754141414141414141414141412655,CHF:1,CHF:0:0.989797979797976969696969696969696011,CHF:0:0:0.9897979769696011,CHF:0:0.9897696011,CHF:0:0.9:0.98979797696011,CHF:0:0:0:0.989797979797696011,CHF:02696011,墨西哥比索:19.6711657497,马来西亚里亚尔:3.9854711142,挪威克朗:8.2069291609,新西兰元:1.4344910591,菲律宾比索:52.620357641,印尼国家电力公司:3.7083046768,罗马尼亚卢比:3.9926925722,卢布:62.2279917469,瑞典克朗:8.8362276479,新加坡元:1.3409662861,泰铢:32.0598349381,土耳其里亚尔:4.4547799175,美元:1,南非兰特:12.56491224,389865欧元},
rates=Object.entries(data.rates).map([k,v])=>({[k]:v}));
console.log(费率);
.as控制台包装{最大高度:100%!重要;顶部:0;}
欢迎来到Stack Overflow!请仔细阅读,尤其是您在这里的最佳选择是对相关主题进行研究,并尝试一下。如果您在做了更多研究和搜索后陷入困境,无法摆脱困境,请发布您的尝试,并明确说明您的困境。人们将乐于提供帮助.祝你好运!@JonasW.-他也会想要钥匙,所以可能是Object.entries
或者只是一个简单的循环。你是在寻找结果['AUD,'BGN'…]和[1.3247077029,1.6813961486…]