14.js数组

发布于:2024-05-24 ⋅ 阅读:(41) ⋅ 点赞:(0)

是一种复杂数据类型,有序的数据集合

数组一般存放多个个例的不同数据,对象一般存放一个个例的不同信息

数组创建

(1)字面量创建

        var 数组名=[ ]

(2)内部构造函数创建

        var 数组名=new Array()

        创建指定长度的数组

        var 数组名=new Array(数字)

length属性

访问语法:数组名.length——>返回数组长度

设置语法:数组名.length=数字

(1)数组名.length=数组长度  数组没有变化

var arr=[0,1,2,3,4,5,6]
arr.length=7
console.log(arr)  //[0,1,2,3,4,5,6]

  (2)数组名.length=数据(数据<数组长度)  数组会从末尾开始删除

var arr=[0,1,2,3,4,5,6]
arr.length=5      //设置数组长度为5 会从末尾删除多余的
console.log(arr)  //[0,1,2,3,4]

(3)数组名.length=数据(数据>数组长度)  多出位置自动用empty补齐

var arr=[0,1,2,3,4,5,6]
arr.length=10     //设置的数组长度大于原长度,那么会多出来位置,自动用empty补齐
console.log(arr)  //[0, 1, 2, 3, 4, 5, 6, empty × 3]

index属性

索引index:从0开始,依次+1

访问语法:数组名[索引]

                  索引对应的值存在,那么返回相应的值

                  若不存在返回undefined

var arr=[0,1,2,3,4,5,6]
console.log(arr[1])  //1
console.log(arr[10]) //undefined

设置语法:

var arr=[0,1,2,3,4,5,6]

//1.索引小于数组长度  修改值
arr[1]="被修改"
console.log(arr)  //[0, '被修改', 2, 3, 4, 5, 6]

//2.索引等于数组长度 在末尾添加
arr[7]='添加'
console.log(arr)  //[0, '被修改', 2, 3, 4, 5, 6, '添加']

//3.索引大于数组长度 在末尾添加 中间自动用empty补齐
arr[10]='在索引10的位置上添加'
console.log(arr)  //[0, '被修改', 2, 3, 4, 5, 6, '添加', empty × 2, '在索引10的位置上添加']

数组遍历

使用for循环,开始为0,结束小于数组长度,步长为1

经典题型:

 ①首先练习两数相换

var a=10
var b='tom'
// 要借助第三个数存储
var temp=a
a=b
b=temp
console.log('a的值'+a,'b的值'+b)  //a的值tom b的值10

冒泡排序

排序算法1-冒泡排序

思路:两两相比,把大的向后排

——①两两相比

var arr = [30, 22, 19, 13, 35, 8]
//循环的初始索引为0,结束索引时length-1,步长为1
for (var j = 0; j < arr.length-1; j++) {
     console.log(arr[j],arr[j+1])
}
/*
  30 22
  22 19
  19 13
  13 35
  35 8
*/

——②互换位置

for (var j = 0; j < arr.length-1; j++) {
    //前者比后者大就交换位置
    if(arr[j]>arr[j+1]){
        temp=arr[j]
        arr[j]=arr[j+1]
        arr[j+1]=temp
     }
 }
 console.log(arr)  //[22, 19, 13, 30, 8, 35]

——③ 一共要比较5次,也就是arr.length-1

//完整代码
var arr = [30, 22, 19, 13, 35, 8]
var temp
for (var i = 0; i < arr.length; i++) {
     for (var j = 0; j < arr.length-1; j++) {
       //前者比后者大就交换位置
        if(arr[j]>arr[j+1]){
          temp=arr[j]
          arr[j]=arr[j+1]
          arr[j+1]=temp
        }
      }
 }
console.log(arr) //[8, 13, 19, 22, 30, 35]

选择排序

每一轮标记最小的,把最小的向前排列

秒懂算法4-选择排序

var arr = [30, 22, 19, 13, 35, 8]
var min = 0
var temp
//第一轮  拿第一个和每一个相比较,如果比第一个小把当前标记为最小
for (var j = 1; j < arr.length ; j++) {
     console.log(arr[j])
     if (arr[min] > arr[j]) {
        min = j
     }
 }
console.log('最小'+arr[min])
temp=arr[0]
arr[0]=arr[min]
arr[min]=temp
console.log(arr)

// 第二轮
min=1
for (var j = 2; j < arr.length ; j++) {
    if (arr[min] > arr[j]) {
        min = j
    }
}
temp=arr[1]
arr[1]=arr[min]
arr[min]=temp
console.log(arr)

——一共有5轮(比较5次)

var arr = [30, 22, 19, 13, 35, 8]
var min 
var temp
for (var i = 0; i < arr.length; i++) {
     min = i
     for (var j = i+1; j < arr.length; j++) {
       console.log(arr[j])
       if (arr[min] > arr[j]) {
             min = j
       }
    }
     temp = arr[i]
     arr[i] = arr[min]
     arr[min] = temp
}
 console.log(arr)

上一篇:13.js对象-CSDN博客

下一篇:15.数组的方法(改变原数组和不改变原数组)-CSDN博客