es6 數組的拓展es6
數組的類 Array 面試
數組的定義:數組
1. var arr=[];函數
2. var arr=new Array(3) // 3 表明有三個元素翻譯
arr[0]=12;對象
arr[1]=24;索引
arr[2]=36;原型
3. var arr=new Array("zhang","lisi","wang");回調函數
[] 表明空數組 [empty] 表明一個空元素it
var arr=new Array("4");
表明有一個元素 爲 4
var arr=new Array(3) 與 var arr=new Array("3") 的區別?
第一個的 3 表明,這個數組中有 3 個元素, 第二個的 3 表明,這個數組中有一個元素,爲3
數組的方法:
1. of() 他是 Array 類上的方法
var arr=Array.of(4);
console.log(arr) // [4] 返回一個數組,裏面有一個元素爲 4
2. forEach() 他是原型的方法,用於對數組的遍歷,返回值 undefined
案例:
var arr=[12,23,56,96,105];
var as = arr.forEach((item,index)=>{
// item 表明元素 index 表明索引
console.log(item)
console.log(index)
})
console.log(as) // undefined
3. map 原型上的方法,用於數組遍歷加工, 返回值:仍然是個新數組, 參數:回調函數
var arr=[12,36,85,96,102];
var as = arr.map((item,index)=>{
return item+3; // 此方法必定要 return
})
4. filter 過濾 從數組中找出全部的指定條件的元素,並返回成一個新的數組,不改變原有數組 return 返回值是 true 就保留,返回值是 false 就不保留
var arr=[
{name:"zhang",age:20},
{name:"lisi",age:10}
];
var as=arr.filter((item,index)=>{
// item 元素 index 索引
return item.age>15; // 條件語句的返回值 true 和 false
})
console.log(as) // 返回知足條件的 {name:"zhang",age:20};
5. find:查找,查找第一個知足條件的元素 參數:回調函數 返回值:第一個知足條件的元素
var arr=[
{name:"zhang",age:20},
{name:"lisi",age:30},
{name:"wang",age:15}
]
var as=arr.find((item,index)=>{
// item 元素 index 索引
return item.age>18;
})
console.log(as) // 他的返回結果就只有一個,(對數組中逐個查找,當返回值爲 true,說明找到,直接將結果返回,不在繼續查找)
6. every:看數組中的每一個是元素是否都知足條件 參數:回調函數 返回值:布爾
var arr=[
{name:"zhang",age:20},
{name:"lisi",age:10}
]
var as=arr.every((item,index)=>{
// item 元素 index 索引
return item.age>5;
})
console.log(as) // true 這種結果返回的 true,由於它的全部元素都知足這個條件,可是隻要有一個不知足,返回值爲 false
7. some: 看數組中的元素是否都知足條件,只要有一個知足,返回值是 true ,所有都不知足這個條件,返回值爲false 參數:回調函數
var arr=[
{name:"zhang",age:20},
{name:"lisi",age:10}
]
var as=arr.some((item,index)=>{
// item 元素 index 索引
return item.age>30;
})
console.log(as) // false 全部的元素都不知足他的條件,返回 false,但只要有一個知足,返回 true
8. reduce:迭代,在原有的基礎上繼續
var arr=[1,2,3,4,5,6,7,8,9,10];
var as=arr.requce((prev,item,index)=>{
// prev 表明上一個的返回值(return 的返回值,就比如 item = 3 的時候,prev 表明上次返回的結果,return 1+2)
// item 數組的元素,若是遍歷的話,默認從第二個元素開始, index 數組的索引
return prev+item // return 的結果
},0) // 這個0 表明第一個返回的結果,最終目的是讓 item 從第一個元素開始
上面的代碼翻譯爲 var as=1+2+3+4+5+6+7+8+9+10
console.log(as) // 55
注意:
1. 默認從第二個元素開始執行,第一個元素沒有上一個
2. 第一次執行返回的是第一個元素,reduce 的參數 是一個回調函數,回調函數中有三個參數,第一個叫 prev 表明上一次 reduce 執行的返回值就,第二個叫 item 表明返回的元素
第三個叫 index 返回的是當前的索引
3. 若是想讓 reduce 從第一個元素開始執行,(默認從第二個),回調函數後面的參數,就是第一次執行的 prev
1. 面試題
將一個數組轉換成對象,屬性是數組的元素,屬性值是元素的個數
解答;