数组Array 复杂数据类型

本文深入探讨JavaScript中的数组,包括创建、访问、操作方法如push、pop、sort等,并解析其内存结构。此外,还介绍了冒泡选择排序的思想。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

是一个内置对象:js已经创建好的对象,有属性和方法。存储一系列有序数据的集合,单个数据叫元素

复杂数据类型>>>对象类型,引用类型

数组数据类型

  • 创建 访问方式
构造函数方式:
var arr = new Array()  //创建一个空数组
var arr = new Array(1,2,3,4)  //数组存储1,2,3,4
var arr = new Array(10)  //表示创建一个空数组存储10个元素
字面量方式:
var arr = []  //创建一个空数组
var arr = [1,2,3,4]
var obj = {}  //创建空对象


访问数组:
数组索引号,数组下标,从0开始
arr[0]
数组元素赋值
arr[0] = 10

属性 length:返回数组长度,数组元素个数
  • 数组对象常用的方法
arr.push(元素)
    添加元素到原数组末尾[返回新长度]          arr[arr.length ]=值  
arr.unshift(元素)[返回新长度]              
    原数组的最前面添加一个元素[返回删除值] 
arr.pop()                       arr.length = arr.length - 1
    删除原数组末尾元素[返回删除值]
arr.shift()                       
    删除原数组最前面的一个元素[返回新数组] 
arr.splice(index,num,新元素)   index:索引号  num: 元素个数
    删除原数组指定索引号index开始的num个元素,新元素可以省略[返回新数组]
arr.reverse()                     
    反转原数组
arr.sort() --将原数组默认由小到大【根据字典顺序排】
    是用来给数组排序的
        由大到小排(匿名函数,作为函数的参数)
            arr.sort(function (a, b) {return a - b})console.log(arr)
以下有返回值-----------------------------------------
arr1.concat(arr2)
    多个数组进行拼接,返回一个新数组
arr.join('')
    把数组每个元素一()里的内容拼接起来,返回一个新的字符串
arr.toString 
    返回去掉[]的字符串
arr.indexOf(元素)
    返回元素在数组中的索引号,不在数组中返回-1(可以判断数组是否包含此元素)
arr.includes(元素)
    有返回true 没有返回false
  • 数组对象遍历方法
都可以遍历
for  for in  for or
            
arr.forEach(function(item,index,arr){-执行语句console.log(item)) ----for简化版
    item 变量的数组元素   index 元素的索引号   arr 原数组对象(都可以不写)   
    function 匿名函数
    没有返回值
    长度是多少就遍历多少

var x=arr.map(function(item,index,arr){-执行语句return }) 
    return {number:item.number,name:item.name,score:item.score - 10,gender:item.gender}返回对象
    map:映射,可以将满足条件的元素,返回值是新数组,数组元素就是return返回的内容 ,定义一个引用变量接受 var x=map()
    和forEach类似,但map可以操作每一项元素


var x=arr.filter(function(item,index,arr){return 条件  })
    返回满足条件的数组元素(一般return只能返回值)返回值是新数组
    和map类似,但只能设置条件
var x=arr.find(function(item,index,arr){return 条件  })
    返回满足条件的第一个元素,没有返回undefined 返回值是新元素 
var x=arr.findindex(function(item,index,arr){return 条件  })
    返回符合条件的第一个元素索引号 如果没有符合条件的元素则返回-1
var x=arr.some(function(item,index,arr){return 条件 })
    判断数组中是否有满足条件的元素,有一个满足就返回ture,否则false
var x=arr.every(function(item,index,arr){return 条件 }) 
    判断数组中所有元素都满足条件,则返回ture 否则false


var x=arr.reduce(function(s,item,index,arr){return s+item },0)
    累加
    s的初始值是0   s=s+item
    reduce有两个参数:1、function匿名函数  2、函数第一个形参初始值
  • 数组的内存结构

栈区域:存储基本数据类型变量,存储引用变量(=右边是一个对象)

堆区域:保存的对象(复杂数据类型

  • 伪数组

1、没有数组常用的方法,可以遍历,可以使用length,可以通过索引访问
2、像调用document.getElementsByTagName, document.childNodes之类的,它们返回的NodeList对象都属于伪数组

  • 冒泡 选择排序思想

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值