數組的類
數組的類是Array
數組的定義
var arr=[元素]
var arr=new Array(3) 數字3,代表有三個元素或者三個空位
如果數組定義采用 new 實例,類中跟的是一個數字 n ,代表有 n 個元素
var arr=new Array("6") 有一個元素,並且這個元素是6
數組的方法
of 方法
1. Array 類上的方法
2. var arr=Array.of(4);console.log(arr); //4 返回一個元素為4的數組
foreach 方法
1. 原型上的一個方法,用於對數組遍歷,返回值是undefined
2. var arr = ["xiaopang", "xiaohe", "xiaoxin"];
arr.forEach((item,index)=>{
console.log(index)
})
3. foreach 沒有返回值
map 方法
1. 遍歷數組(原型上的一個方法,返回值是一個數組,所以必須加 return 返回值),將數組一一映射成一個新的數組,內部一定要使用return
2. var arr = ["xiaopang", "xiaohe", "xiaoxin"];
var as=arr.map((item,index)=>{
return item+"123"
})
console.log(as)
filter 方法
1. 過濾 從數組中找出所有符合條件的元素,並返回一個新的數組,不改變原有數組
2. return true 就保留原來的數組,return false 就不保留
3. 當return 的條件成立就是 true ,不成立就是 false
4. var arr=[
{"name":"xiaopang","age":10},
{"name":"xiaohe","age":20},
{"name":"xiaoxin","age":25},
{"name":"pangpang","age":13}
]
var as=arr.filter((item,index)=>{
return item.age>13
})
console.log(as)
5. var as=arr.filter((item,index)=>{
return item.age>13
})
console.log(as)
數組里有符合條件的,所以是 true ,所以返回符合條件的新數組
find 方法
1. 對數組逐個查找,當返回值為 true 說明查找到,直接返回結果,不再往下查找了
2. var as=arr.find((item,index)=>{
return item.age>13
})
console.log(as)
every 方法
1. 看數組中的每個元素是否都滿足條件,都滿足條件返回的是 true,如果有一個不滿足,返回值就是 false
2. var arr=[
{"name":"xiaopang","age":10},
{"name":"xiaohe","age":20},
{"name":"xiaoxin","age":25},
{"name":"pangpang","age":13}
]
var as=arr.every((item,index)=>{
return item.age<=13
})
console.log(as)
some 方法
1. 看數組中的元素,是否有滿足條件的,有就true ,沒有 就是false
2. var arr=[
{"name":"xiaopang","age":10},
{"name":"xiaohe","age":20},
{"name":"xiaoxin","age":25},
{"name":"pangpang","age":13}
]
var as=arr.some((item,index)=>{
return item.age<=13
})
console.log(as)
reduce 方法
1. 迭代執行
2. var arr=[1,2,3,4,5,6,7,8,9,10];
var as=arr.reduce((prev,item)=>{
// prev 航一次返回值
// item 數組的元素,從第二個開始
console.log(prev);
return prev+item;
})
console.log(as) //55
3. 注意: 1.從第二個元素開始執行,因為第一個元素沒有上一個
2.第一次執行的返回的是第一個元素 reduce() 的參數是一個回調函數,回調函數中可以放三個參數,第一個 prev 代表上一次執行后的返回值,第二個 item 當前元素,第三個 index 索引值
3. 如果想讓 reduce 從第一個元素開始執行 (默認為第二個),可以在回調函數之后加一個參數,就可以讓初始有個默認值
面試題
將一個數組轉換成對象,屬性是數組的元素,屬性值是元素的個數
解答;
var arr=["item","tom",,"jack","item","jack"];
var as=arr.reduce((prev,item)=>{
if(item in prev){
prev[item]++
}
else{
prev[item]=1;
}
return prev
},{})
console.log(as);