1.数组对象根据某一属性值排序
let arr=[
{id:4,name:大大},
{id:1,name:轻轻},
{id:2,name:文文},
]
function sortRule(a,b) {
return a.id-b.id;
}
arr.sort(sortRule);//直接改变原数组
2.数组去重
let arr = [1,0,0,2,9,8,3,1];
function unique(arr) {
return Array.from(new Set(arr))
}
console.log(unique(arr)); // [1,0,2,9,8,3]
3.数组对象去重
function unique(arr){
var hash = [];
for(var i=0;i<arr.length;i++){
var flag = true;
for(var j=0;j<hash.length;j++){
if(arr[i].province_name == hash[j].province_name){
flag = false;
}
}
if(flag){
hash.push(arr[i]);
}
}
return hash;
}
this.allShengData = unique(this.allShengData);
4.数组对象合并
data.data.data如图
let tempArr = [];
let aa = [];
for (let i = 0; i < data.data.data.length; i++) {
if (tempArr.indexOf(data.data.data[i].hospital_id) === -1) {
aa.push({
id: data.data.data[i].hospital_id,
label: data.data.data[i].hospital_name,
children: [
{id: data.data.data[i].doctor_id,
label: data.data.data[i].doctor_name,
disabled: false
}],
disabled: true
});
tempArr.push(data.data.data[i].hospital_id);
} else {
for (let j = 0; j < aa.length; j++) {
if (aa[j].id == data.data.data[i].hospital_id) {
aa[j].children.push(
{
id: data.data.data[i].doctor_id,
label: data.data.data[i].doctor_name,
disabled: false
});
break;
}
}
}
}
// console.log(aa);
this.doData=aa
合并渲染后5.数组翻转
var arr = ["f","e","i","e","s","o","f","t"];
document.writeln(arr.join()); f,e,i,e,s,o,f,t
arr.reverse();
document.writeln(arr.join()); t,f,o,s,e,i,e,f
6.数组和数组对象提取公共值
const arr = arr1.filter((item: any) => {
return arr2.indexOf(item.key) != -1;
});
7.二维数组解开为一维数组
const arr1 = [[1,2],3,[4,5,6]
const arr = arr1.flat();
console.log(arr) //[1,2,3,4,5,6]
8.查找对象数组中某属性的最大最小值
const array=[
{
"id": 1,
"value": 20
},
{
"id": 2,
"value": 66
},
{
"id": 3,
"value": 34
}
]
Math.max.apply(Math, array.map(function(o) {return o.value})) //最大值 66
Math.min.apply(Math, array.map(function(o) {return o.value})) //最小值 20