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

求大佬指点哈!获取json索引下的某一项value值万分感谢

求大佬指点哈!获取json索引下的某一项value值万分感谢

30秒到达战场 2019-10-19 09:32:32
已知一个数组,如下: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 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

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

TA贡献1846条经验 获得超7个赞

没有明显的数据对应关系,不是很理解。我理解是,从根据要显示的语言,从arr数组中转换成一个对应语言的集合,不知道是不是这样?
如果是的话,假定语言是tw,那么可以这样做:
varlan='tw';
varlist=[];
for(variinarr){
list.push(arr[i][lan]);
}
console.log(list);
                            
查看完整回答
反对 回复 2019-10-19
  • 2 回答
  • 0 关注
  • 527 浏览
慕课专栏
更多

添加回答

举报

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