IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> javascript基础之(数组) -> 正文阅读

[数据结构与算法]javascript基础之(数组)

目录

一、初识数组

1、创建数组

2、访问数组元素

3、数组的遍历

4、举例

(1.)获取数组元素中的最大值

(2.) 数组转为字符串

?5、数组元素的操作

二、数组排序算法

1、冒泡排序算法

2、插入排序算法

??

?三、二维数组

1、创建二维数组

2、元素的访问

3、二维数组求和

4、二维数组的转置


?

一、初识数组

类型相同的数据的集合。

1、创建数组

(1.)使用'[]'字面量创建

var 变量名 = [1,2,3,4];

(2.)使用'new Array()'创建

var 变量名 = new Array();

var arr1 = []; //创建一个空数组
var arr2 = [1,2,3,4,5]; //创建一个有数据的数组

(3.)数组的属性

length(数组默认属性,表示数组的长度)

2、访问数组元素

使用索引来访问数组中的元素,索引是一个数字,从0开始

数组名[index]? ? ? index的取值在0~lenth-1之间

var arr = [1,2,3,4,5,6,7,8]
console.log(arr[0]); //访问数组第一个元素
console.log(arr[8]); //访问元素超出数组长度

?

?

3、数组的遍历

将数组中的元素全部访问一遍。

(1.)数组名.length? ? ?---


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

?

(2.)for循环


var arr = [1,2,3,4,5,6,7,8]
//for循环遍历数组
for(i=0;i<arr.length;i++){
    console.log(arr[i]);
}

?

4、举例

(1.)获取数组元素中的最大值

var arr = [2,43,561,646,1232,886,3,13]; //创建一个数组
var max = arr[0]; //用变量max保存数组中第一个值
for (i=1;i<arr.length;i++){//遍历数组
    if(arr[i]>max){  
        max = arr[i]  //把最大的数赋值给max
    }
}
console.log('元素中的最大值是:',max); 

?

(2.) 数组转为字符串

var arr = ['red', 'green', 'blue', 'pink'];
var str = arr[0];
 var sep = '';
for(i=1;i<arr.length;i++){
    str += seo + arr[i];
}
console.log(str);

?

?5、数组元素的操作

(1、)数组长度

A.获取数组长度

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

?

B.修改数组长度

var arr = [1,2,3,4,5,6,7];
arr.length = 9; //大于原数组长度
console.log(arr);
arr.length = 2;  //小于原数组长度
console.log(arr);

C.访问空元素,返回结果为undefined。

var arr = [1,2,3,4,5,6,7];
console.log(arr[10]); //访问第十一个元素(空元素)

D.出现空元素的情况

//情况1:在使用字面量创建数组是出现空元素
var arr = [1,2,,4]
console.log(arr);
//情况2:在new Array()中传入数组长度的参数
var arr = new Array(4);
console.log(arr);
//情况3;给数组添加索引不连续的元素
var arr = [2];
arr[4] = 1; //向数组中添加一个元素,索引为4
console.log(arr);



(2、)新增或修改元素

给定的索引超过了数组中最大的索引为新增,否则为修改。

var arr = ['a','c','b','d','g']
arr[0] = 'A';
console.log(arr); //修改元素
arr[6] = 'D'
console.log(arr); //新增元素

?

(3、)筛选数组元素

eg:将一个数组中所有大于或等于10的元素筛选出来,放入到新的数组中

var arr = [2,4,5,77,85,44,24,53,10];
var a = [];//定义一个新的数组
var j=0;
for(i=0;i<arr.length;i++){
    if(arr[i]>=10){
        a[j++] = arr[i];
    }
}
console.log('原数组:',arr);
console.log('新数组:',a);


??

(4、)删除元素

eg:删除数组中所有数值为0的元素

var arr = [2,4,5,0,85,0,24,0,10];
var a = [];//定义一个新的数组
for(i=0;i<arr.length;i++){
    if(arr[i]!=0){
        a[a.length] = arr[i];
    }
}
console.log('原数组:',arr);
console.log('新数组:',a);

?

(5、)数组反转

var arr = [2,4,5,0,85,24,10];
var a = [];
for(i=arr.length-1;i>=0;i--){
    a[a.length] = arr[i];
}
console.log('反转后的数组',a);


?

二、数组排序算法

1、冒泡排序算法

eg:从小到大排序

var arr = [2,4,5,0,85,24,10];  //待排序的数组
console.log('交换前的数组',arr);
for( var i=0;i<arr.length;i++){ //控制比较的轮数
    for( var j=0;j<arr.length-i-1;j++){ //控制参与比较的元素
        if(arr[j]>arr[j+1]){ //相邻两个元素比较大小
            var temp = arr [j+1];
            arr[j+1]  = arr[j];
            arr[j] = temp;

        }
    }
}
console.log('交换后的数组',arr);

?

2、插入排序算法

var arr = [2,4,5,0,85,24,10];  //待排序的数组
console.log('交换前的数组',arr);
for(var i=1;i<arr.length;i++){
    for(var j=i;j>0;j--){
        if(arr[j-1]>arr[j]){
            var temp = arr[j];
            arr[j] = arr[j-1];
            arr[j-1] = temp;
        }
    }
}
console.log('交换后的数组',arr);

?

?三、二维数组

1、创建二维数组

(1.)使用'[]'字面量创建

var arr = [[1,2,3],[4,5,6],[7,8,9]] //3行3列的二维数组

(2.)使用'new Array()'创建

? var a = new Array(
?? ??? ??? ?new Array(10,20,30),
?? ??? ??? ?new Array(11,22,33),
?? ??? ??? ?new Array(45,56,67)
?? ??? ?)

2、元素的访问

数组名[行下标][列下标]?? ?

var info = new Array(
new Array('Tom', 13, 155),
new Array('Lucy', 11, 152)
);
console.log(info[0]);          // 输出结果:(3)?["Tom", 13, 155]
console.log(info[0][0]);	// 输出结果:Tom

?

3、二维数组求和

var arr = [[1,2,3],[4,5,6],[7,8,9]]
var sum = 0;
for( var i=0;i<arr.length;i++){  //遍历arr数组
    for(var j=0;j<arr[i].length;j++){ //遍历arr[i]数组
        sum += arr[i][j]; //二维数组元素累加
    }
    console.log(sum);
}

?

?

4、二维数组的转置

二维数组的转置是将二维数组的横向元素保存为纵向元素

var a = [
    ['a','b','c'],
    ['d','e','f'],
    ['g','h','i'],
    ['i','k','I']
]
var str = ''
for(var i=0;i<a.length;i++){
    for(var j=0;j<a[i].length;j++){
        str += a[i][j]+'\t';
    }
    str += '\n';
}
console.log("转置前:\n",str);

var res = []

for(var i=0;i<a[0].length;i++){
    res[i] = []
    for(var j=0;j<a.length;j++){
        res[i][j] = a[j][i];
    }
}
console.log("转置后:",res);	
    

?

?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-01 17:57:48  更:2021-12-01 17:58:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 14:31:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码