// 首先创建三个类型不同的数组
var arr = [1,2,3,4]
var objArr = [{id:1,name: '张奥林'},{id:2,name: '张小林'}]
var secondArr = [[1,2],[3,4],[5,6]]
数组的for循环遍历方法
for(var i = 0; i < arr.length; i++) {
console.log(arr[i])
}
for(var i = 0; i<objArr.length; i++) {
console.log(objArr[i])
}
for(var i = 0; i < secondArr.length; i++) {
console.log(secondArr[i])
}
数组的forEach遍历方法 该方法可以传入三个参数 分别是数组的值 下标 以及数组的内容
arr.forEach(function (value, index, arr) {
console.log(value, index, arr)
})
objArr.forEach(function (value, index, arr) {
console.log(value, index, arr)
})
secondArr.forEach(function (value, index, arr) {
console.log(value, index, arr)
})
数组的map()方法 返回一个新数组不会改变原来的数组
var a = arr.map(function (value, index, arr) {
return value * value;
})
console.log(a) // [1,4,9,16]
var b = secondArr.map(function (value, index, arr) {
return value
})
console.log(b)
for in 遍历对象方法 可以访问到数组原型中的属性 返回的 i 为数组的下标
Array.prototype.name = 'laila'
for(var i in arr){
console.log(i,arr[i])
}
for of遍历数组 不会访问到数组原型上的属性 且返回的item为数组对应的值
for(var item of arr){
console.log(item)
}
for(var item of objArr){
console.log(item)
}
filter 数组的过滤 返回新的符合条件的数组
// 过滤掉所有字符串类型的值
var arr = [1, 2, 3, 4,"a","b","c","d","e","f"]
var newObja = arr.filter(function(value,index,arr){
console.log(value.constructor)
return value.constructor === Number
})
console.log(newObja)
every方法遍历每一项 每一项的值都符合条件则返回true 否则返回false
var isEvery = arr.every(function(value){
// console.log(value)
return value > 2
})
console.log(isEvery) // false
some()方法 只要有一项符合条件则返回true
var isEvery = arr.some(function (value) {
return value > 2
})
console.log(isEvery)
reduce() 方法第二个参数是第一个参数的初始值 对结果有影响
var sum = arr.reduce(function(prev,cur){
return cur + prev
})
console.log(sum)
find() 查找到数组当中符合条件的某一项 返回的是符合条件的某一项, 如果数组中有多项符合条件,查询到符合条件的值之后就会跳出 ,并且返回最后查找到的值
var abc = arr.find(function(val){
return val >2
})
console.log(abc)