<!--
数组常用方法
方法参数和返回值
push => 是用来在数组的末尾追加一个元素
arr.push(元素)
pop =>是用来删除数组末尾的一个元素
arr.pop()
shift =>是删除数组最前面的一个元素
splice 是截取数组中的某些内容,按照数组的索引来截取
arr.splice(index,num)
=> index 索引号
=> num 元素个数
arr.splice(index,num,替换内容)
sort()排序默认升序
arr.sort()
var mysort = function(a,b){
}
arr.sort(function(a,b){
return a - b
})
按字典顺序排序
concat 是把多个数组进行拼接
=> 参数1: 要拼接的数组
=> 返回拼接后的新数组
join 是把数组里面的每一项内容链接起来,变成一个字符串
indexOf(元素)
=> 查找元素在数组中的索引号
=> 如果没找到返回 -1
=> 作用: 判断元素是否存在数组中
=> 如果返回-1,表示元素不存在数组中
-->
var arr1 = [1, 2, 3]
var index = arr1.indexOf(30)
console.log(index); (-1)
// var str = arr1.join('') // 1-2-3
// console.log(str)
// var arr1 = [1,2,3]
// var arr2 = [4,5,6]
// var newArr = arr1.concat(arr2)
// console.log(arr1) 123
// console.log(newArr)123456
// var arr = [1, 3, 2]
// console.log(arr);
// arr.push(4) [1, 2, 3,4]
// arr.pop() // 删除数组末尾的一个元素 [1,2]
// arr.unshift(4) //[4, 1, 2, 3]
// arr.shift() //[2,3]
// arr.splice(1,1)
// arr.reverse()
// arr.sort(function (a, b) {
// return b - a
// })
// console.log(arr);
// var arr = [1,2,15,13,3]
// console.log(arr)
// arr.sort()
// console.log(arr)
练习
1.创建一个学生成绩数组 [98,78,86,59,94]
var scoreArray = [98, 78, 86, 59, 94]
2.向数组中追加一个成绩100分
// scoreArray.push(100)
3. 删除第1个不及格的成绩
提示: 1. 删除数组元素,使用splice(索引号,1) 2. 遍历数组,查找不及格元素索引号
var count = 0
for (var i = 0; i < scoreArray.length; i++) {
//不及格成绩
if (scoreArray[i] < 60) {
count++
if (count == 1) {
scoreArray.splice(i, 1)
break;
}
}
}
4. 数组成绩由低到高排序输出
scoreArray.sort()
数组遍历方法
forEach 语法:
var arr = [1, 2, 3]arr.forEach(function(item,index,oldArr){
// 1. item: 数组元素// 2. index: 索引号// 3. oldArr: 原始数组})
=> arr.forEach(function(item,index){
})
=> arr.forEach(function(item){
})
=> arr.forEach(function(a1){
})
filter
=> 查找原数组中所有满足条件的元素,返回 到一个新数组中
find
=> 查找原数组中满足条件的第一个元素,返回是元素
every
=> 数组中是否每个元素都满足指定的条件, 全部满足返回true
reduce
[10,20,30]
=> var sum = arr.reduce(function(s,item,index){
return s + item
},0)
第二个参数0是函数参数s的初始值,
var scoreArray = [98, 89, 90, 48, 88, 56, 78]
var sum = scoreArray.reduce(function(s,item,index){
return s + item
},0)
console.log('sum = ',sum);
//学生成绩数组是否全部合格,如果全部合格返回 true,否则false
// var isOk = true
// for(var i =0; i< scoreArray.length; i++){
// if(scoreArray[i] < 60){
// isOk = false
// break;
// }
// }
// isOk
// var isOk = scoreArray.every(function(item,index){
// return item > 60
// })
// console.log('isOk ',isOk);
// var isOk = scoreArray.some(function(item,index){
// return item < 60
// })
// console.log('isOk ',isOk);
// var arr = [1,2,3]
// arr.forEach(function(item,index,oldArr){
// console.log('item :',item, ' index :',index, ' oldArr',oldArr)
// })
// var scoreArray = [98, 89, 90, 48, 88, 56, 78]
// scoreArray.forEach(function(item){
// console.log(item);
// })
// var newArray = scoreArray.map(function(item){
// return item * 10 // [980, 890,900,880]
// })
// console.log(newArray);
// ['<h2>980</h2>', '<h2>890</h2>','<h2>900</h2>', '<h2>880</h2>']
// var newArray = scoreArray.map(function(item){
// return '<h2>'+ item * 10 +'</h2>' // ['<h2>980</h2>', '<h2>890</h2>','<h2>900</h2>', '<h2>880</h2>']
// })
// console.log(newArray);
// 找所有合格成绩,放到一个新数组中
// var newScore = scoreArray.filter(function (item, index) {
// return item > 60 //[98,89,90,88,78]
// })
// console.log(newScore);
//找第一个不合格分数
// var score = scoreArray.find(function (item, index) {
// return item < 60 //return返回的是满足条件的元素item
// })
// console.log(score)
练习
已经学生数组如下:
var students = [
{number:1001, name:'jack', score:98,gender:'男'},
{number:1002, name:'rose', score:95,gender:'女'},
{number:1003, name:'小丽', score:85,gender:'女'},
]
1. 找成绩大于平均分的所有学生
var sum = 0
var zong = students.reduce(function(s,item,index){
return s += item.score
},0)
var ping = zong / students.length
var dayu = students.filter(function(item,index){
return item.score > ping
})
console.log(dayu)
2. 找姓名是rose的学生并且性别是女的学生
var rosee = students.filter(function(item,index){
return item.name == 'rose' && item.gender =='女'
})
console.log(rosee)
for(var i=0;i<=students.length;i++){
if(students[i].name == 'rose' && students[i].gender =='女'){
console.log(students[i])
break
}
}
3. 所有学生成绩减十分,返回到新数组中
// var jian = students.map(function(item,index){
// return item.score - 10
// })
// console.log(jian)
4. 所有学生中是否有女生
// var shi = students.some(function(item){
// return item.gender == '女'
// })
// console.log(shi)
5. 所有学生中是否有不及格的学生
// var bu = students.some(function(item){
// return item.score < 60
// })
// console.log(bu)
6. 所有学生的总成绩,使用reduce方法
// var zong = students.reduce(function(s,item,index){
// return s + item.score
// },0)
// console.log(zong)