删除对象中的空值
- 方法一:
let obj={a:1,b:''};
Object.keys(obj).map((item) => {
if (!obj[item]) {
delete obj[item];
}
return true;
});
console.log(obj) //{a:1}
- 方法二
for ( let key in obj ){
if ( obj[key] === '' ){
delete obj[key]
}
}
取出两个数组中不重复的值
- filter
let arr1=[1,2,3,4],arr2=[2,3];
let newArr=arr1.filter(i=>!arr2.includes(i)) //[1,4]
- map+filter
let arr1=[1,2,3,4],arr2=[2,3];
let newArr=arr1.map(i=>{
if(!arr2.includes(i)) return i
}).filter(Boolean)
filter(Boolean) 过滤数组中的所有假值
获取数组中满足条件的对象存入新数组
let list = [{ name: '111', age: 1 }, { name: '222', age: 2 }, { name: '3330', age: 3 }];
let data = [1, 2];
let a = list.filter(i => data.includes(i.age))
let b = list.map(i => {
if (data.includes(i.age)) {
return i
}
}).filter(Boolean)
let c = list.reduce((n, v) => {
if (data.includes(v.age)) {
n.push(v)
}
return n
}, [])
console.log(a); //[{ name: '111', age: 1 }, { name: '222', age: 2 }]
console.log(b); //[{ name: '111', age: 1 }, { name: '222', age: 2 }]
console.log(c); //[{ name: '111', age: 1 }, { name: '222', age: 2 }]
根据数组对象中的某个属性进行分类排序
let arr=[
{
"progressStage": "已评审",
"checkMoney": 14,
"projName": "金华市中医医院网络安全等级保护测评服务",
"untName": "金华市中医医院"
},
{
"progressStage": "已评审",
"checkMoney": 27.1,
"projName": "金华市第五医院智慧医疗信用就医(医后付)接口",
"untName": "金华市第五医院"
},
{
"progressStage": "已评审",
"checkMoney": 6,
"projName": "金华市第五医院网络安全运维服务",
"untName": "金华市第五医院"
},
{
"progressStage": "已评审",
"checkMoney": 9.98,
"projName": "金华市中心医院中普达PDA保外按需付费维修服务",
"untName": "金华市中心医院"
},
{
"progressStage": "已评审",
"checkMoney": 5.011,
"projName": "2022年卫生监督智慧指挥平台的维护和管理项目",
"untName": "金华市卫生监督所"
}
]
点击按钮排序=>排序后的顺序
[
{
"progressStage": "已评审",
"checkMoney": 27.1,
"projName": "金华市第五医院智慧医疗信用就医(医后付)接口",
"untName": "金华市第五医院"
},
{
"progressStage": "已评审",
"checkMoney": 6,
"projName": "金华市第五医院网络安全运维服务",
"untName": "金华市第五医院"
},
{
"progressStage": "已评审",
"checkMoney": 5.011,
"projName": "2022年卫生监督智慧指挥平台的维护和管理项目",
"untName": "金华市卫生监督所"
},
{
"progressStage": "已评审",
"checkMoney": 9.98,
"projName": "金华市中心医院中普达PDA保外按需付费维修服务",
"untName": "金华市中心医院"
},
{
"progressStage": "已评审",
"checkMoney": 14,
"projName": "金华市中医医院网络安全等级保护测评服务",
"untName": "金华市中医医院"
}
]
- 方法一:
function changeData(list) {
let obj={};
for(let i of list){
if(obj[i.untName]?.length){
obj[i.untName].push(i)
}else{
obj[i.untName]=[]
obj[i.untName].push(i)
}
}
let arr=[]
for(let i in obj){
arr.push(...obj[i])
}
return arr
}
// console.log(changeData(list));
- 方法二:
function changeData(list) {
return list.sort((a, b) => {
return a.untName.localeCompare(b.untName)
})
}
// console.log(changeData(list));
遍历取出子项
let arr = [
{
"id": "select_4ii9wzo9",
"name": "盘点仓库",
"type": "select",
"children": [],
"dataBind": true
},
{
"type": "td",
"children": [
{
"id": "table_jr3ojvnm",
"name": "子表单",
"type": "table",
"children": [
{
"id": "custom_pp36pjn4",
"name": "关联产品",
"type": "custom",
"children": [],
"dataBind": true,
"el": "fmk-rel-consult"
},
{
"id": "input_xdtxypte",
"name": "产品名称",
"type": "input",
"children": [],
"dataBind": true
},
{
"id": "input_96lnzq9d",
"name": "库存",
"type": "input",
"children": [],
"dataBind": true
}
],
"dataBind": true
}
]
}
]
//取出type不是'custom', 'td', 'table'的子项
function filterType(arr) {
const result = []
arr.forEach(item => {
if (['custom', 'td', 'table'].includes(item.type)) {
if (item.children) {
result.push(...filterType(item.children))
}
} else {
result.push(item)
}
})
return result
}
console.log(filterType(arr));
// result
[
{
"id": "select_4ii9wzo9",
"name": "盘点仓库",
"type": "select",
"children": [],
"dataBind": true
},
{
"id": "input_xdtxypte",
"name": "产品名称",
"type": "input",
"children": [],
"dataBind": true
},
{
"id": "input_96lnzq9d",
"name": "库存",
"type": "input",
"children": [],
"dataBind": true
}
]