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