js中的数组和数组类

数组

  • 数组的定义·
//new Array()
var a = new Array(10)
console.log(a) // [empty*10]
//字面量的方式
var arr = [10]
console.log(arr) //10
  • 数组的读写
var arr = [1,2,3,4]
//不可以溢出读
console.log(arr[11]) //
arr[5] = 5 //可以溢出写

数组常用的方法

会改变原数组
  1. push
//在数组的最后一位添加一个
var arr = [1,2,3,4]
arr.push(5) //[1,2,3,4,5]
//实现一个自己push方法
Array.prototype.myPush = function(){
if(arguments.length == 1){
this[this.length] = arguments[0]
}else{
for(var i = 0; i < arguments.length; i ++{
this[this.length] = arguments[i]
}
return this.length
}
  1. pop
var arr = [1,2,3,4]
arr.pop() //[1,2,3]
  1. shift
var arr = [1,2,3]
arr.shift() //[1,2]
  1. unshift
//在数组的首位添加
var arr = [1,2,3,4]
arr.unshit(0) //[0,1,2,3,4]
  1. reverse
//逆转
var arr = [1,2]
arr.reverse()//[2,1]
  1. sort
//排序
var arr = [1,4,2,6,4]
arr.sort(function(a,b){return a-b}) //[1,2,44,6]
//如何让一个有序数组打乱
var arr = [1,2,3,4,5,6]
arr.sort(function(){return Math.random() - 0.5})
  1. splice
//arr.splice(从第几位开始,截取的长度,在接口添加的新数据)
var arr = [1,2,3,4]
arr.splice(1,2) //[1,4]
arr.splice(1,0,5) //[1,5,2,3,4]
不改变原数组

concat

//连接两个数组并返回一个新数组
var arr1 = [1,2]
var arr2 = [2,3]
var arr = arr1.concat(arr2)
console.log(arr)//[1,2,2,3]

join

//让数组连接起来并且返回字符串
var arr = [1,2,3,4]
var arr1 = arr.join('-')
console.log(arr1) //'1-2-3-4'

toString
split 和join逆向操作
slice

arr.slice(起始位子,结束位子)//截取数组

类数组

  • 可以利用属性名模拟数组的特性
  • 可以动态的增长length的属性
  • 如果强行让类数组用push方法,则会根据length属性值的位置进行属性的扩增
var obj = {
"0": 'a',
"1": 'b',
"2": 'c',
"length":3,
"push": Array.prototype.push
}
//阿里面试题
var obj = {
"2" : 'a',
"3" : 'b',
"length" :2,
"push" : Array.prototype.push
}
obj.push(c)
obj.push(d)
obj={
"2" : "c",
"3" : "d",
"length" : 4,
"push" : Array.prototyp.push
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值