const city = [
{
province: '福建省',
city: '福州市',
county: '鼓楼区',
street: '东街街道',
store: '三坊七巷'
},
{
province: '福建省',
city: '福州市',
county: '鼓楼区',
street: '东街街道',
store: '达明小吃街'
},
{
province: '福建省',
city: '福州市',
county: '鼓楼区',
street: '东街街道',
store: '东方百货'
},
{
province: '福建省',
city: '福州市',
county: '鼓楼区',
street: '华大街道',
store: '农贸市场'
},
{
province: '福建省',
city: '福州市',
county: '鼓楼区',
street: '华大街道',
store: '淳百味'
},
{
province: '福建省',
city: '福州市',
county: '仓山区',
street: '金山街道',
store: '淳百味'
},
{
province: '福建省',
city: '福州市',
county: '仓山区',
street: '金山街道',
store: '一点点'
},
{
province: '福建省',
city: '福州市',
county: '晋安区',
street: '茶园街道',
store: '华莱士'
},
{
province: '福建省',
city: '福州市',
county: '晋安区',
street: '茶园街道',
store: '省体中心'
},
{
province: '福建省',
city: '厦门市',
county: '同安区',
street: '大同街道',
store: '快乐番薯'
},
{
province: '福建省',
city: '厦门市',
county: '同安区',
street: '大同街道',
store: '喜之然'
},
{
province: '福建省',
city: '厦门市',
county: '思明区',
street: '鼓浪屿街道',
store: '鼓浪屿'
},
{
province: '广东省',
city: '汕头市',
county: '朝阳区',
street: '朝阳街道',
store: '潮汕牛肉'
},
{
province: '广东省',
city: '揭阳市',
county: '揭东区',
street: '揭东街道',
store: '可乐鸡翅'
}
]
1、取出一维数据
let provinceData = []
cities.map(item => {
provinceData.push(item.province)
})
// 去重
provinceData = provinceData.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index
})
// ['福建省','广东省']
2、取出二维数据
let provinceData = []
//取出第一层数据
cities.map(item => {
provinceData.push(item.province)
})
// 去重
provinceData = provinceData.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index
})
// 取出第二层数据
let cityData = []
provinceData.map(pitem => {
let pCity = []
cities.map(item => {
// 取出同一个省份的所有city
if(pitem === item.province) {
pCity.push(item.city)
}
})
// 去重
pCity = pCity.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index
})
// 将数据增加到对应的对象
cityData[pitem] = pCity
})
3、取出三维数据
// 第一层数据
let provinceData = [];
this.cities.map((item) => {
provinceData.push(item.province);
});
// 去重
provinceData = provinceData.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index;
});
// 第二层数据
let cityData = [];
provinceData.map((pitem) => {
let pCity = [];
this.cities.map((item) => {
if (pitem === item.province) {
pCity.push(item.city);
}
});
// 去重
pCity = pCity.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index;
});
cityData[pitem] = pCity;
});
// 第三次数据
let countyData = [];
provinceData.map((pitem) => {
let city = []
cityData[pitem].map((citem) => {
let county = []
this.cities.map(item => {
if(item.province === pitem && item.city === citem) {
county.push(item.county)
}
})
county = county.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index;
});
city[citem] = county
});
countyData[pitem] = city
});
4、取出四维数据
// 第一层数据
let provinceData = [];
this.cities.map((item) => {
provinceData.push(item.province);
});
// 去重
provinceData = provinceData.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index;
});
// 第二层数据
let cityData = [];
provinceData.map((pitem) => {
let pCity = [];
this.cities.map((item) => {
if (pitem === item.province) {
pCity.push(item.city);
}
});
pCity = pCity.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index;
});
cityData[pitem] = pCity;
});
// 第三层数据
let countyData = [];
provinceData.map((pitem) => {
let city = []
cityData[pitem].map((citem) => {
let county = []
this.cities.map(item => {
if(item.province === pitem && item.city === citem) {
county.push(item.county)
}
})
// 去重
county = county.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index;
});
city[citem] = county
});
countyData[pitem] = city
});
// 第四层数据
let streetData = []
provinceData.map(pitem => {
let city = []
cityData[pitem].map(citem => {
let county = []
countyData[pitem][citem].map(yitem => {
let street = []
this.cities.map(item => {
if(item.province === pitem && item.city === citem && item.county === yitem) {
street.push(item.street)
}
})
// 去重
street = street.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index;
});
county[yitem] = street
})
city[citem] = county
})
streetData[pitem] = city
})
5、取出五维数据
// 第一层数据
let provinceData = [];
this.cities.map((item) => {
provinceData.push(item.province);
});
// 去重
provinceData = provinceData.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index;
});
// 第二层数据
let cityData = [];
provinceData.map((pitem) => {
let pCity = [];
this.cities.map((item) => {
if (pitem === item.province) {
pCity.push(item.city);
}
});
// 去重
pCity = pCity.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index;
});
cityData[pitem] = pCity;
});
// 第三次数据
let countyData = [];
provinceData.map((pitem) => {
let city = []
cityData[pitem].map((citem) => {
let county = []
this.cities.map(item => {
if(item.province === pitem && item.city === citem) {
county.push(item.county)
}
})
//去重
county = county.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index;
});
city[citem] = county
});
countyData[pitem] = city
});
// 第四次数据
let streetData = []
provinceData.map(pitem => {
let city = []
cityData[pitem].map(citem => {
let county = []
countyData[pitem][citem].map(yitem => {
let street = []
this.cities.map(item => {
if(item.province === pitem && item.city === citem && item.county === yitem) {
street.push(item.street)
}
})
// 去重
street = street.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index;
});
county[yitem] = street
})
city[citem] = county
})
streetData[pitem] = city
})
// 第五次数据
let storeData= []
provinceData.map(pitem => {
let city = []
cityData[pitem].map(citem => {
let county = []
countyData[pitem][citem].map(yitem => {
let street = []
streetData[pitem][citem][yitem].map(sitem => {
let store = []
this.cities.map(item => {
if(item.province === pitem && item.city === citem && item.county === yitem && item.street === sitem) {
store.push(item.store)
}
})
// 去重
store = store.filter((item, index, arr) => {
return arr.indexOf(item, 0) === index;
});
street[sitem] = store
})
county[yitem] = street
})
city[citem] = county
})
storeData[pitem] = city
})
补充:取出对应对象数据中数组(以最后五维数据为例)
// 第一维
let provide = []
provide = Object.keys(storeData)
console.log("provide", provide)
// 第二维
provide.map(item => {
let city = []
city = Object.keys(storeData[item])
console.log("city", city)
})
// 第三维
provide.map(item => {
let city = []
city = Object.keys(storeData[item])
city.map(citem => {
let county = []
county = Object.keys(storeData[item][citem])
console.log("county",county)
})
})
// 第四维
provide.map(item => {
let city = []
city = Object.keys(storeData[item])
city.map(citem => {
let county = []
county = Object.keys(storeData[item][citem])
county.map(yitem => {
let street = []
street = Object.keys(storeData[item][citem][yitem])
console.log("street", street)
})
})
})
// 第五维
provide.map(item => {
let city = []
city = Object.keys(storeData[item])
city.map(citem => {
let county = []
county = Object.keys(storeData[item][citem])
county.map(yitem => {
let street = []
street = Object.keys(storeData[item][citem][yitem])
street.map(sitem => {
console.log('store', storeData[item][citem][yitem][sitem])
})
})
})
})
})