现有数组selectedRows,值为[alpha,beta,gamma,delte],其中alpha也是数组,现在要拿到alpha下的one值。
- 已知:selectedRows 为列表选中行,可能单选,也可能多选。
- 思路:通过selectedRows 拿到alpha,再拿到alpha下的one。
// selectedRows:[Object]
selectedRows = [alpha,beta,gamma,delte];
alpha = [one,two,third,fourth,fifth];
- 知识点:map()方法返回新数组,且不改变原始数组。
先通过map()方法拿到selectedRows下的alpha,剔除其他。
想通过selectedRows.alpha这种方式拿到selectedRows下的所有alpha值,对象才能通过.xx去拿值,所以map()里先处理一下。
let alphaArr = [];
// 遍历selectedRows返回一个只有alpha的新数组
selectedRows.map(i =>{
// 判断时带上长度,空数组结果为true
if(i.alpha && i.alpha.length > 0){
i.alpha.map(j =>{
alphaArr.push(j);
})
}
})
// alphaArr = [alpha,alpha2,alpha3,...]
// alphaArr.alpha = one
给出限定条件:只有one的值为1且two没有值,为满足条件数据,把这些数据筛选出来。
map()方法把满足条件的数据返回一个新数组。
let validateArr = [];
// alphaArr数组不为空数组情况下
alphaArr.length && alphaArr.map(item => {
if(item.one === '1' && !item.two){
validateArr.push(item);
}
})