let arr =[1,2,3];for(let i =0; i < arr.length; i++){
console.log(arr[i]);}// 推荐写法for(let i =0, count = arr.length; i < count; i++){
console.log(arr[i]);}
// map 返回新的数组,不会改变原有数组的值let result = arr.map(function(value){
console.log(value);
value +=1;return value;});
console.log(arr, result);// [1, 2, 3] [2, 3, 4]
4. filter():返回符合func条件的元素数组
// filter 从数组中找到符合条件的数据,组成新的数组let result = arr.filter(function(value){
console.log(value);return value ===2;});
console.log(arr, result);// [1, 2, 3] [2]
5. some():返回boolean,判断是否有元素是否符合func条件
// some 从数组中找到符合条件的数据,返回boolean。只要找到一个就会返回truelet result = arr.some(function(value){
console.log(value);return value ===2;});
console.log(arr, result);// [1, 2, 3] true
6. every():返回boolean,判断每个元素是否符合func条件
// every 从数组中找到符合条件的数据,返回boolean。每一个都满足才会返回truelet result = arr.every(function(value){
console.log(value);return value ===2;});
console.log(arr, result);// [1, 2, 3] false
for(let index in arr){
console.log(index, arr[index]);}// 看似可以,其实是存在问题的,比如在Array原型定义一个自定义属性Array.prototype.foo=function(){
console.log("foo");};for(let index in arr){
console.log(index, arr[index]);// 会遍历出这个方法}
二、数组的遍历方式【ES6】
1. find():返回第一个通过测试的元素,如果没找到返回undefined
let res = arr.find(function(value){return value ==2;});
console.log(arr, res);// [1, 2, 3, 2] 2
2. findIndex():返回的值为该通过第一元素的索引
let res = arr.findIndex(function(value){return value ==2;});
console.log(arr, res);// [1, 2, 3, 2] 1
3. for of
for(let item of arr){
console.log(item);// 1 2 3}
4. values()
// 数组值for(let item of arr.values()){
console.log(item);// 1 2 3}
5. keys()
// 数组下标for(let item of arr.keys()){
console.log(item);// 0 1 2}