js—数组过滤及树形数组的⼀些应⽤⽂章⽬录
提⽰:以下是在之前写项⽬的时候应⽤过的⼀些⼩栗⼦,仅供参考
⼀、数组过滤
1.filter字符串包含某个字符
selectedRowKeys.filter((item:any)=> item.includes('.ps.'))
2.forEach_indexOf数组去重(id值相同)
let filterData:any=[];
if(roleIds.indexOf(val.id)===-1){
filterData.push(val);
}
});
filter过滤对象数组
3.双重for循环_splice数组去重(key相同)
uniqueArry=(arr:any)=>{
for(var i =0; i < arr.length; i++){
for(var j = i +1; j < arr.length; j++){
if(arr[i].key === arr[j].key){//第⼀个等同于第⼆个,splice⽅法删除第⼆个
arr.splice(j,1);
j--;
}
}
}
return arr;
}
4.for_indexOf数组去重
uniqueArry=(arr:any)=>{
if(!Array.isArray(arr)){
console.log('type error!')
return
}
var array =[];
for(var i =0; i < arr.length; i++){
if(array.indexOf(arr[i])===-1){
array.push(arr[i])
}
}
return array;
}
⼆、树形数组
1.默认选中_返回树形中所有被选中的id数组
getKeys=(data:any, list:any)=>{//已被选中
if(data && data.length >0){
for(let i =0; i < data.length; i++){
if(data[i].checkedFlag ==='Y'&& data[i].type==='ps'){//默认选中的条件          list.push(data[i].id)//选中的id数组
}
if(data[i].children){//如果有下⼀层再进⾏调⽤
}
}
return list
}
}
2.被取消且原本为选中的
cancelKeys=(data:any, list:any)=>{//要准备回收
if(data?.type==='ps'&& data?.checkedFlag ==='Y'){//本⾝已被选中
list.push(data?.key)
}
if(data?.children){
for(let i =0; i < data.children?.length; i++){
this.cancelKeys(data.children[i], list)
}
}
return list;
}
后续补充

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。