JavaScript之数组对象Array

1 篇文章 0 订阅
1 篇文章 0 订阅

目录

数组对象的创建

数组对象的方法

        数组末尾添加和删除数组项        push()        pop()

        数组开头添加和删除数组项        unshift()        shift()

        splice()        删除 替换 添加

        数组项拼接为字符串         join()

        数组的翻转        arr.reverse()

        数组的拼接        arr.concat(arr1,arr2...)

        indexOf()       查找指定数据在数组中首次出现的下标

        includes()        确定数组是否包含元素

        slice()        截取数组

        isArray()        判断指定数据是否为数组

        数组的排序方法        arr.sort()       

 数组的排序算法

 选择排序

 冒泡排序       


数组对象的创建

        字面量创建        var arr=[1,2,3,4]

        标准函数(构造函数)创建

               var arr=new Array(1,2,3,4)

var arr = new Array(4);	//声明一个数组项为4的空数组	
var arr = new Array()	//创建一个空数组
var arr = new Array(false)    //创建的数组是[false]  
//[0][1]表示取数组[0],索引为1   结果为undefined

数组对象的方法

        数组末尾添加和删除数组项        push()        pop()

                添加        arr.push(要添加的数组项)        返回值为追加后数组的长度

                删除        arr.pop()        返回值是被删除的数组项

        数组开头添加和删除数组项        unshift()        shift()

                添加        arr.unshift(要添加的数据)        返回值为追加后数组的长度

                删除        arr.shift()        返回值是被删除的数组项

        splice()        删除 替换 添加

                删除        arr.splice(删除的起始下标 , 要删除的数组项个数)

                替换        arr.splice(删除的起始下标 , 要删除的数组项个数,用来替换的数组项1,数组项2...)

                添加        arr.splice(删除的起始下标 , 0 , 用来添加的数组项1,数组项2....)

        数组项拼接为字符串         join()

                 arr.join(‘拼接标识’)

                将数组中的所有数组项拼接起来,形成一个字符串,每一个数组项之间嵌入一个拼接标识

                若不传入拼接标识,默认使用逗号拼接

        数组的翻转        arr.reverse()

        数组的拼接        arr.concat(arr1,arr2...)

        indexOf()       查找指定数据在数组中首次出现的下标

                arr.indexOf(指定的数据)       若数组中不包含该数据,则返回-1

        includes()        确定数组是否包含元素

                arr.includes(元素[,start])        start 为数字中开始搜索元素的位置 默认为0

                包含返回true,不包含返回false

        slice()        截取数组

                arr.slice(start[,end])        不改变原数组

        isArray()        判断指定数据是否为数组

                Array.isArray(data)       是返回true,不是则返回false

        数组的排序方法        arr.sort()       

                默认从小到大,排序标准是每一个数字首位的ASCII编码

        自定义       

arr.sort(function(a,b)){
    return a-b    //按照从小到大排列
    //return b-a    //按照从大到小排列
}

数组对象的拷贝

浅拷贝

任何一个数组对数据的改变都会影响另一个数组

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

深拷贝

原来的数组、复制的副本数组是互相独立的两个数组,操作数据时互不影响

var arr=[1,2,3,4],arr2=[]
for(var i=0;i<arr.length;i++){
    arr2[i]=arr[i]
}
arr2.push(5)
console.log(arr)    //[1,2,3,4]
console.log(arr2)    //[1,2,3,4,5]

数组的排序算法

 选择排序

注意内外层循环变量的取值和范围

//方法一:
for(var i=0;i<arr.length-1;i++){//外层循环 循环的是比较的趟数
    //声明一个记录最小项下标的变量 假设当前是最小项
    var minIndex=i
    for(var j=i+1;j<arr.length;j++){//内层循环 循环的是每一趟中比较的次数
        if(arr[minIndex]>arr[j]){
            //将最小项下标 记录为j
            minIndex=j
        }
    }
    //判断当前项下标和最小项下标是否相同 若不同则交换
    if(i!=minIndex){
        var temp=arr[i]
        arr[i]=arr[minIndex]
        arr[minIndex]=temp
    }
}

//方法二:
for(var i=0;i<arr.length-1;i++){//外层循环 循环的是比较的趟数
    for(var j=i+1;j<arr.length;j++){//内层循环 循环的是每一趟中比较的次数
        if(arr[i]>arr[j]){
            var temp=arr[i]
            arr[i]=arr[j]
            arr[j]=temp
        }
    }
}

 冒泡排序       

        相邻两个数组项两两进行比较,如果后一个比前一个小,则交换两者的位置(从小到大)

for(var i=0;i<arr.length-1;i++){//外层循环 length-1趟
    for(j=0;j<arr.length-i-1;j++){//内层循环    
        //相邻两项进行比较 如果后一项比前一项小,就两两交换位置
        if(arr[j]>arr[j+1]){
            var temp=arr[j]
            arr[j]=arr[j+1]
            arr[j+1]=temp
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值