數(shù)組方法
forEach
forEach會遍歷數(shù)組, 循環(huán)體內沒有返回值, forEach`循環(huán)不會改變原來數(shù)組的內容, forEach有三個參數(shù), 第一個參數(shù)是當前元素, 第二個參數(shù)是當前元素的索引, 第三個參數(shù)是當前元素所屬的數(shù)組.
let arry = [1, 2, 3, 4];
arry.forEach((item, index, arr) => {
console.log(item); // 1 2 3 4
});
注意:forEach不能跳出循環(huán),如寫了判斷條件 只能跳出當此循環(huán)
? forEach沒有返回值
?
filter
filter參數(shù)和forEach也是一樣的,filter主要是過濾的, 用來過濾數(shù)組中不滿足條件的元素, 把滿足條件的元素返回到新的數(shù)組里, 并且不會改變原數(shù)組.
let arry = [1, 2, 3, 4, 5];
let temp = arry.filter((item, index, arr) => {
return item < 3; // 返回 1 2
});
map
map的主要作用是數(shù)據(jù)需要處理的時候會用到map比較多一些 map的參數(shù)和forEach是一樣的
let arry = [1, 2, 3, 4 ,5];
let temp = arry.map((item, index, arr) => {
return item + 1; // 返回 [2,3,4,5,6]
});
every
遍歷數(shù)組, 在循環(huán)體內寫條件, 如果每一項都是true, 就會返回true, 只要有一個是false, 就會返回false
let arry = [1, 2, 3, 4, 5];
arry.every((item, index, arr) => {
return item > 2;
});
// 使用變量接收 打印出的是布爾值 true或false
sort
對數(shù)組進行排序
1、基本數(shù)據(jù)類型
let arr = [5,8,4,1,565]
arr.sort()
//基本數(shù)據(jù)類型就可以直接使用sort方法進行排序
2、引用數(shù)據(jù)類型
想要將對象數(shù)組進行排序的時候就要我們自己創(chuàng)建數(shù)組的時候在對象中添加一個我們想要的順序的屬性,使用屬性來把對象數(shù)組進行排序
// 使用axios方法 獲取城市列表數(shù)據(jù)
getCityData().then(res => {
let list = res.data.cityList
console.log(this.cityList);
var obj = {}
var hotCity = []
var resultArr = []
//對數(shù)組進行處理
list.forEach(item=>{
var p =item.pinyin[0].toUpperCase()
if(obj[p]){
obj[p].push(item.name)
}else{
obj[p] = [item.name]
}
if(item.isHot === 1){
hotCity.push(item)
}
})
for(let key in obj){
resultArr.push({value:obj[key],key:key})
}
// 得到的數(shù)組是這樣的 [{value:["北京"榄审,北平,...], key:B}]
// one 是類比第一個 two是類比第二個 循環(huán)
resultArr.sort((one,two)=>{
one = one.key
two = two.key
if(one<two){
return -1 //返回-1的排序是 one ,two
}else if(one>two){
return 1 //返回-1的排序是 two ,one
}else{
return 0
}
})
this.hotCityList = hotCity
this.allCityList = resultArr
console.log(this.allCityList)
})