数组的降维
<script>
// 二维数组降维
var arr = [
[12, 78, 56],
[78, 89],
[2, 3]
];
var arrNew = [];
arr.forEach(item => {
arrNew.push(...item);
})
console.log(arrNew);
var arr1 = [12, 78, [45, 89, 39], 78, 15, [8, 5]];
var arr1New = [];
arr1.forEach(item => {
// 判断是否是数组
if (Array.isArray(item)) {
arr1New.push(...item);
} else {
arr1New.push(item);
}
})
console.log(arr1New);
</script>
数组的升维
//数组的降维 ,多用于对后端数据的重新整理
var arr = [{
type: '电子产品',
name: 'iPhone',
price: 8888
}, {
type: '家具',
name: ' 桌子',
price: 100
}, {
type: '食品',
name: '瓜子',
price: 10
}, {
type: '家具',
name: '椅子',
price: 380
}, {
type: '电子产品',
name: '小米手机',
price: 1380
}, {
type: '食品',
name: '辣条',
price: 5
}, {
type: '食品',
name: '咖啡',
price: 50
}];
// 声明一个空对象,及空数组
var obj = {};
var arrNew = [];
arr.forEach(item => {
if (obj[item.type] == undefined) { // 第一次出现 判断对象中是否含有
obj[item.type] = 1; //赋值
arrNew.push({
type: item.type,
data: [item]
})
} else { // 不是第一次出现
// 判断当前的item2属于arrNew中的那一类
arrNew.forEach((item2, index2) => {
if (item.type == item2.type) {
arrNew[index2].data.push(item2) //在该对象的data中添加
}
})
}
})