JavaScript ES语法学习笔记(二)

Array/数组

ES5中遍历的方法

for循环

1
2
3
4
5
const arr=[1,2,3,4,5]
for(let i=0;i<arr.length;i++){
    console.log(arr[i])
}
//循环中支持break,continue,这些方法在forEach中不支持

forEach

1
2
3
arr.forEach(function(item){
    console.log(item)
})

every

1
2
3
4
5
6
7
arr.every(function(item){
    if(item===2){
        return false    
    }
    console.log(item)
    return true      //默认返回false,只有当返回true时才会继续向下遍历
}

for in

1
2
3
4
5
6
7

for(let  index  in  object){     //主要为对象服务,数组也是对象
    if(index==2) {     //index是字符串,只有==时break才起作用
        continue         //支持continue  break
    }
    console.log(index,arr[index])
}

ES6中新增的遍历语法

for of——-遍历一切可遍历的元素(数组、对象、集合)等

1
2
3
for(let item of arr){
    console.log(item)
}

如何将伪数组转换成数组(Array.from

ES5中的做法

1
2
3
let args = [].slice.call(arguments) // collection
let imgs = [].slice.call(document.querySelectorAll('img')) // NodeList
console.log(args)

ES6中的做法

1
2
3
4
// Array.prototype.from
let args = Array.from(arguments)
let imgs = Array.from(document.querySelectorAll('img'))
imgs.forEach()

生成新数组

ES5

1
2
let array = Array(5)
let array = []

ES6

1
2
3
4
5
6
7
8
9
10
11
// Array.prototype.of
let array = Array.of(1,2,3,4)
console.log(array)

// Array.prototype.fill-----填充数组 
let array = Array(5).fill(7)
console.log(array)

Array.fill(value,start,end)  //从start到end位置的数替换/填充为value
let array = [1, 2, 3, 4, 5]
console.log(array.fill(8, 2, 4))

数组中查找一个元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
let array=[1,2,3,4,5]
let find = array.filter(function (item) {
   return item % 2 === 0
})
console.log(find)   //找到满足条件的所有值

ES6新增find方法
// Array.prototype.find
let find = array.find(function (item) {
  return item % 2 === 0
})
console.log(find)   //找到满足条件的第一个值

//Array.prototype.findIndex   ---找到满足条件的第一个值的索引
数组知识点总结:遍历 转换 生成 查找
0%