数组

数组声明

1、字面量的方式声明数组
var arr = [3,4,5,6,7]
2、new运算符声明数组。传多个参数,这些参数就都是数组的值
var arr1 = new Array(4,5,6,7,8)

//如果要访问数组元素,可以通过索引(下标)都是从0开始的
console.log(arr[1]) //4

  •          用new运算符声明数组,但是实参只传递一个,这一个实参是数组长度*
    
     空数组
      var arr2 = new Array(3)
      //arr2长度为3,但是3个值都是空的
    
      //给arr2赋值,可以通过下标
      arr2[0] = 6   //给arr2的第0个元素赋值为6
      arr2[1] = 7   //给arr2的第1个元素赋值为7
    
      arr2[2] = 8   //JS很宽容,多填了一个,就加进去了,length变成4了。就算数组元素超过本来的长度,length会自动加
      arr2[3] = 9
      console.log(arr2)
    
     //可以直接给arr2[6]
      arr2[6] = 10   //4,5就变成了empty,长度就变成了7
      console.log(arr2)
      console.log(arr2.length)  //长度  7
    
    //一般如果数组固定了长度就不要像这种写法取改变,不严谨

数组数据存放类型

var arr = [4,56,7,8,3]
var arr1 = [‘Tom’,‘Jim’,‘John’]
var str = ‘abc’
var arr2 = [34,‘Tony’,true,str,null,arr1]

    *//数组的索引取值范围0~arr.length-1
    //最后一个元素*
    console.log(arr[arr.length-1])
    
    *//在arr末尾追加一个元素*
    arr[arr.length] = 20
    console.log(arr)
    *//再追加*
    arr[arr.length] = 30
     *//length是动态获取的,不是固定值*

二维数组
var arr = [
[1,2,3],
[4,5,6],
[7,8,9,30,4,65,76]
]
console.log(arr.length) //3
console.log(arr[0]) //[1,2,3]
var arr2 = arr[0] //arr2 = [1,2,3]
console.log(arr2[0]) //0
console.log(arr[0][0]) //0
console.log(arr[1][2]) //6
console.log(arr[2][5]) //65

稀疏数组
var arr = new Array(5)
arr[0] = ‘Tom’
arr[3] = ‘Tony’
console.log(arr)

数组遍历

1、for循环
var arr = [3,5,7,8,4] //这是一个稀疏数组
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]) //遇到空值时输出是undefined,而for in里面遇到空值会自动跳过
}

2、for in
for (var index in arr) {
//注意:index是数组的索引,它是字符串类型,但是并不影响取数据
console.log(index,arr[index])
}

3、for of:遍历数组的第三种方式,用的很少
for(var value of arr) {
console.log(value) //直接取值,不取下标。稀疏数组中的undefined也会被遍历出来
}

Array-API

数组-api在这里插入图片描述
var arr = [1,2,3,4]
var arr1 = [5,6,7,8]

// **concat** 数组合并,并不会修改源数组,而是得到一个新的数组
var arr2 = arr.concat(arr1, [10,10,10])
console.log(arr, arr1)
console.log(arr2)

// 以指定字符来把数组每个元素拼接成一个字符串
var str = arr.join('-')
console.log(str)

// 在arr的末尾追加一个或多个值,修改的是arr本身,**push**方法的返回值是新的长度
// var len = arr.push(20, 40)
var len = arr.push(20)
console.log(arr)
console.log(len) // 5

// 把arr的最后一个元素删掉,修改的也是源数组,pop方法的返回值是被删掉的那个元素
var num = arr.pop()
console.log(arr)
console.log(num)

// **shift**在开头删除,**unshift**在开头追加

// **reverse**数组元素反转,修改的是源数组
arr.reverse()
console.log(arr)

// arr当中按照指定的索引截取子数组,索引含头不含尾的,不会修改源数组,而是返回一个新数组
var arr3 = arr.slice(1,3) // 截图到的是索引1和2,不包含3
console.log(arr3)

var arr4 = arr.slice(2) // **slice**方法只传一个参数,意思就是截取到末尾
console.log(arr4)

var arr5 = arr.slice(-2, -1) // slice传递负数,负数代表到数第几个
console.log(arr5)

var arr6 = arr.slice(1, -2) // 从2开始,截取到倒数第二个结束,不包含到数第二个
console.log(arr6)
splice
splice修改的是源数组
var arr = [4,3,5,6,7,8]
// 把从2开始的数据删掉
arr.splice(2)

/*/ 从2开始,删除3个数,删除元素里包含开始索引的*
 arr.splice(2,3)

// *从2开始,删除两个数,然后在删除位置用10去替换*
// arr.splice(2, 2, 10)

// *从第三个参数开始后面可以传任意多个参数,都是替换的值*
// arr.splice(2, 2, 10, 20, 30) 

// *可以把第二个参数写成0,就是添加,可以在任意位置添加元素*
arr.splice(6, 0, 20)

sort:排序 arr.sort()
默认的sort是按照编码来排序,只要第一位分出顺序了,就不会看第二位
例如
var arr = [5,24,6,27,33,1,24]
// 指定排序规则
arr.sort(function (a, b) {
// a和b是sort方法会依次去取数组里的元素
// 如果这里的返回值大于0,那么a和b就会交换顺序,不大于0就不交换
// return a - b // 升序
return b - a // 降序
})
console.log(arr)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值