获取json索引下的某一项value值

已知一个数组,如下:
vararr=[{"label":0,"tw":"中國","en":"China","zh":"中国"},{"label":1,"tw":"安哥拉","en":"Angola","zh":"安哥拉"},{"label":2,"tw":"阿富汗","en":"Afghanistan","zh":"阿富汗"}...]
现在要根据后台返回的country来获取对应的值,这个country是不固定的,比如当country=0的时候,country='中国'。当country=2的时候,country='阿富汗'。依次类推
我该怎么办呢,后台不返回直接字符串,要前端去转换,还有根据语言去转换
另外再问一下,这种工作的话,是前端去做还是后台直接返回country='阿富汗'或country='中国'
白衣非少年
浏览 507回答 2
2回答

慕的地6264312

问题1:需要明确下,后端返回的country=0这个0和你前端的那个数组里面的值是不是对应的;比如:我看你的数组里面有个label;api返回的country的值是不是和这个label对应的?还是说后端返回的是数组的角标?如果是角标:容易解决:直接letcountryObj=arr[country]如果是对应的label,直接letcountryObj=arr.find(item=>item.label===country)问题2:后端返回这种编码,没有合理不合理的,前端做后端做其实差别不大;相对而言前端做其实更好,因为这样api的使用范围就更大了。不然你这里要country="名称";别人可能需要别的个人见解*

森林海

没有明显的数据对应关系,不是很理解。我理解是,从根据要显示的语言,从arr数组中转换成一个对应语言的集合,不知道是不是这样?如果是的话,假定语言是tw,那么可以这样做:varlan='tw';varlist=[];for(variinarr){list.push(arr[i][lan]);}console.log(list);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript