es6 filter过滤器--获取json对象某一值其他特定属性value
运用场景:一个json数组对象存放公司和对应id(一一对应关系),当页面点击内容获取到公司时,需要联动其他数据,但是其他数据接口参数是id来获取。这时就需要通过公司字段找到对应id
代码如下:
let arrObj = [ {orgName: 'A公司', id: 800}, {orgName: 'B公司', id: 801}, {orgName: 'C公司', id: 802} ] // 获取公司的id let aArr = arrObj.filter(item => item.orgName === 'A公司') // 返回的是数组 [{orgName: 'A公司', id: 800}] let id = aArr[0].id // 获取到A公司的id // 上面2行等价于 let id = arrObj.filter(item => item.orgName === 'A公司')[0].id
需要注意的是可能过滤为空,这是还获取id会报错
因为我运用场景是点击公司名称实现带参数钻取,所以公司名称是肯定存在。
不过呢,代码还是要考虑多种可能的问题,这个细节处理相信聪明的你一定知道【淘气】
(处理可能性:传参公司是空直接return fasle;过滤后获取的数组要是空直接 return false ;具体处理可结合业务场景)