数组---数组的定义和数组的方法及其使用方式

定义数组及数组方法小结

  • 定义数组的方法
    1、对象表达式
var arr1 = new Array()
console.log(arr1)

2、字面量表达式

var arr2 = []
console.log(arr2)
var  arr = ["one","two"]
console.log(arr)
var  arr1 = ["one","two",10]  //对数据类型要求不严格

3、字面量的特殊写法 用逗号隔开 但是没有值2.值是wmpty

// 稀疏数组 sparse array、
var arr1 = [,,,4, ,,,,10,20]
console.log(arr1)
console.log(length)  //empty 会占位置
  • 数组的方法

push()在末尾添加 , 返回值是数组的长度

var arr = [1,2,3]
arr.push(4)
arr.push(5,6)  //输出1,2,3,4,5
console.log(arr)

pop() 末尾删除 , 返回值是被删除元素的值
push 和pop 可以模拟栈的数据结构 -FILO=frist in last out 先进后出
FILO=frist in frist out 先进先出

var arr = [1,2,3]
arr.pup()  //[1,2]
console.log(arr)

unshift() 首位添加 返回值为操作后的数组长度

var arr = [1,2.3]
var a = arr.unshift() // 数组最前面添加
console.log(a)
console.log(arr)

shift() 首位删除 返回值为删除的值

var arr = [1,2.3]
var a = arr.shift() // 数组最前面删除
console.log(a)
console.log(arr)

splice() 对数组进行增删改 当作为删除或替换或增加时 返回值是被删除的值的数组(当为增加时删除的值为空)

var arr = [1,2.3]
console.log(arr)
arr.splice(1,1)  // 删除下标为1的数组,数量为1个
arr.splice(1,0,10) //从下标为1 的地方新增一个元素10
arr.splice(1,1,10) //添加下标为1的元素

delete 删除对象属性

 //在对象中使用
    var ojb = {
        age:18,
        name::"luck"
    }
    console.log(obj)
    delete obj.age
    console.log(obj)

//在数组中使用delete
var arr = [1,2.3]
console.log(arr)
delete.arr[0]  //输出empty,2,3  //可以删除元素,但是位置会保留
console.log(arr)

reverse() 倒序排列,颠倒顺序

var arr = [1,2.3]
console.log(arr)
arr.reverse()  //输出3,2,1

sort() 排序

var arr = [1,5.3]
console.log(arr)
arr.sort()  //输出1,3,5  //如果是数字则默认由小到大排序

var arr2 = [1,15,82,"a","b"]
console.log(arr2)
arr2.sort() // 输出[1, 15, 2, 8, "a", "b"]  //如果是字符就按字符方法编码排序,两位数的数字按照第一位进行排序
// 比较函数   用于排序  返回值:- , +, 0
var arr = [1,4,6,3]
console.log(arr)
arr.sort(function (a,b){
    return b - a //a - b升序, b - a降序
})
console.log(arr)
//对象排序
var students = [
    {
        naem:"吴姐",
        score:10,
    },
    {
        naem:"吴哥",
        score:30,
    },
    {
        naem:"小吴",
        score:2,
    },
    ];
    console.log(students) 
    students.sort(function(a,b){
        return a.score - b.score;
    })
    console.log(students) 
//按照对象中成绩进行排序

比较字符串

var students = [
    {
        naem:"A姐",
        score:10,
    },
    {
        naem:"B哥",
        score:30,
    },
    {
        naem:"X吴",
        score:2,
    },
    ];
    onsole.log(students) 
    studentstring.sort(function(a,b){
        //return a.name - b.name;  //不行 不能对比字符串,因为比较函数只认 - + 0 
        var x = a.name.toLOwerCase()
        //转换成小写
        var y = b.name.toLOwerCase()
        //转换成小写
        if(x < y){
            return -1
        }
        if(x > y){
            retuen 1
        }    
        return 0
    })
    console.log(students) 

max()min()查找数组的最大值和最小值

var arr = [1,2,3]
function show(arr){
  //  return Math.max.apply(this,arr) //最大值
    return Math.min.apply(this,arr)
    //最小值
}
console.log(show(arr))

indexOf() 查找指定字符串的位置

var arr = ["one","ha","ii"]
console.log(arr.indexOf("ii")) //2  找到返回下标
console.log(arr.indexOf("qqqq")) //-1  找不到返回-1
console.log(arr.indexOf("ii")) //

lastIndexOf() 查找指定字符串最后一次的位置

var arr = ["one","ha","ii"]
console.log(arr.lastIndexOf("ii"))
//查找元素最后一次出现的位置从后往前找

concat() 数组拼接

var arr1 = [1,3,2,4]
var arr2 = [1,9,0,7]
//low方法
//arr1[3] = arr[6]
//console.log(arr1)
var arr3 = arr1.concat(arr2) //数组拼接,返回新的数组,不改变原来的数组
console.log(arr1)
console.log(arr3)

join() 把数组元素转换成字符串 (以指定字符分割字符串)

var arr1 = [1,2,3]
var arr2 = arr1.join()  //数组转字符串 返回新的数组
console.log(arr1)
console.log(arr2) //默认逗号分隔

toString()

var arr1 = [1,2,3]
var arr2 = arr1.toString()
console.log(arr2) //输出1,2,3

var num = 255
console.log(num.toString(10)) //默认10进制
console.log(num.toString(16)) //16进制

slice() 截取指定位置数组的值 参数第一个值为起始坐标 第二个值为结束坐标 不包含结束位置

var arr1 = [1,2,3]
console.log(arr1)
var arr2 = arr1.slice(1,2)
console.log(arr2)

判断是否是数组

var arr1 = [1,2,3]
console.log(Array.isArray(arr1))

findIndex()

var arr = [18,19,13,1,12,4,56]
var result = arr.findIndex(function(val.index){
    if(val >= 18 && index > 3){
        return val  
    }
})
console.log(result) 
// 输出下标6  //返回的是第一个满足条件的下标
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值