记一下JS一些用法
1、将数组每个元素修改为对象。对象列表 更换对象的 key(标识)
this.leftData = this.leftData.map((item,index)=>{ return Object.assign({},{'key':item.vocode,'label':item.vodesc}); })
2、根据对象的属性,找到对象数组中的某个对象
this.leftData.find(item=>item.key==p.vocode)
3、根据某个属性,在对象数组中找到拥有这个属性的元素获得其他属性。
例如 有对象数组 [{key:1,label:"小明"},{key:2,label:小红},...]
这个数组很大,我把key为 183的label,赋值给新的对象p,属性是vodesc,可以写成下面的写法:
p.vodesc=this.leftData.find(item=>item.key==p.vocode).label
2.3都是find()函数的用法
4、删掉对象数组中某些对象,用到filter函数。我的写到了循环中,因为列表要去除选中列表中的所有对象。所以写在循环中
//todo 生成左侧列表传输,内容为除去特殊科室的其他科室。 for (let i = 0; i < this.transValue.length; i++) {
//每次循环都过滤一条 this.leftData = this.leftData.filter((item)=>item.key!=this.transValue[i]) }
5
数据为
[
{id: 35, type: 'DIM', code: 'PatCountry', name: '患者国家', reName: null, …}
{id: 34, type: 'KPI', code: 'S0020001', name: '门急诊挂号人次', reName: null, …}
]
要将type为KPI和DIM的区分,并且只保留每个对象的code和name属性。
思路:先按照type过滤,再保留属性
let data = response.rows[0] //找到type为KPI的对象, let r1 = data.kpiQueryParamsList.filter(item=>item.type==='KPI').map(({code,name})=>({code,name})) let r2 = data.kpiQueryParamsList.filter(item=>item.type==='DIM').map(({code,name})=>({code,name}))
//如果要修改一些属性,那么就按照以下方式写 可以将r1的name修改为desc
let r1 = data.kpiQueryParamsList.filter(item=>item.type==='KPI').map(({code,name})=>({"code":code,"desc":name}))
let r2 = data.kpiQueryParamsList.filter(item=>item.type==='DIM').map(({code,name})=>({code,name}))
如有差错,请各位指正

浙公网安备 33010602011771号