为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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

白衣非少年 2019-08-17 21:44:45
已知一个数组,如下:
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='中国'
                    
查看完整描述

2 回答

?
慕的地6264312
问题1:需要明确下,后端返回的country=0这个0和你前端的那个数组里面的值是不是对应的;比如:我看你的数组里面有个label;api返回的country的值是不是和这个label对应的?还是说后端返回的是数组的角标?
如果是角标:容易解决:直接letcountryObj=arr[country]如果是对应的label,直接letcountryObj=arr.find(item=>item.label===country)
问题2:后端返回这种编码,没有合理不合理的,前端做后端做其实差别不大;相对而言前端做其实更好,因为这样api的使用范围就更大了。不然你这里要country="名称";别人可能需要别的
个人见解*
                            
查看完整回答
反对 回复 2019-08-17
?
慕粉4167745
没有明显的数据对应关系,不是很理解。我理解是,从根据要显示的语言,从arr数组中转换成一个对应语言的集合,不知道是不是这样?
如果是的话,假定语言是tw,那么可以这样做:
varlan='tw';
varlist=[];
for(variinarr){
list.push(arr[i][lan]);
}
console.log(list);
                            
查看完整回答
反对 回复 2019-08-17

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信