数组常用方法

<!-- 
数组常用方法
方法参数和返回值
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)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值