• 写在前面:参考哔哩哔哩黑马程序员pink老师教程
  • 地址:https://www.bilibili.com/video/BV1Sy4y1C7ha?t=41&p=4

目录

数组的概念

创建数组

数组的创建方式

利用 new 创建数组

利用数组字面量创建数组

数组元素的类型

获取数组元素

数组的索引

遍历数组

数组的长度

数组中新增元素

通过修改 length 长度新增数组元素

通过修改数组索引新增数组元素

数组案例


数组的概念

  • 数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的优雅方式。
// 普通变量一次只能存储一个值
var num = 10;
// 数组一次可以存储多个值
var arr = [1,2,3,4,5];

创建数组

数组的创建方式

利用 new 创建数组

var 数组名 = new Array() ;
var arr = new Array(); // 创建一个新的空数组

利用数组字面量创建数组

//1. 使用数组字面量方式创建空的数组
var 数组名 = [];
//2. 使用数组字面量方式创建带初始值的数组
var 数组名 = ['小白','小黑','大黄','瑞奇'];
  • 数组的字面量是方括号 [ ]
  • 声明数组并赋值称为数组的初始化

数组元素的类型

  • 数组中可以存放任意类型的数据,例如字符串,数字,布尔值等。
var arrStus = ['小白',12,true,28.9];

获取数组元素

数组的索引

  • 索引 (下标) :用来访问数组元素的序号(数组下标从 0 开始)。
  • 数组可以通过索引来访问、设置、修改对应的数组元素,我们可以通过“数组名[索引]”的形式来获取数组中的元素。
// 定义数组
var arrStus = [1,2,3];
// 获取数组中的第2个元素
alert(arrStus[1]);

遍历数组

  • 遍历: 就是把数组中的每个元素从头到尾都访问一次
var arr = ['red','green', 'blue'];
for(var i = 0; i < arr.length; i++){console.log(arrStus[i]);
}

数组的长度

  • 使用“数组名.length”可以访问数组元素的数量(数组长度)。
var arrStus = [1,2,3];
alert(arrStus.length); // 3
  • 注意:

    • ① 此处数组的长度是数组元素的个数 ,不要和数组的索引号混淆。
    • ② 当我们数组里面的元素个数发生了变化,这个 length 属性跟着一起变化。
  • 案例1:遍历数组

    • 请将 [“关羽”,“张飞”,“马超”,“赵云”,“黄忠”,“刘备”,“姜维”]; 数组里的元素依次打印到控制台
var arr = ["关羽","张飞","马超","赵云","黄忠","刘备","姜维"];
// 遍历 从第一个到最后一个
for(var i = 0; i < arr.length; i++ ) { console.log( arr[i] );
}
  • 案例2:数组求和及平均值

    • 求数组 [2,6,1,7, 4] 里面所有元素的和以及平均值。
var arr = [2, 6, 1, 7, 4];
var sum = 0;
var average = 0;
for (var i = 0; i < arr.length; i++) {sum += arr[i];
}
average = sum / arr.length;
console.log('这组数的和是:' + sum);
console.log('这组数的平均值是:' + average);
  • 案例3: 数组最大值

    • 求数组[2,6,1,77,52,25,7]中的最大值。
var arrNum = [2,6,1,77,52,25,7];
var maxNum = arrNum[0]; // 用来保存最大元素,默认最大值是数组中的第一个元素
// 从0 开始循环数组里的每个元素
for(var i = 0;i< arrNum.length; i++){// 如果数组里当前循环的元素大于 maxNum,则保存这个元素和下标if(arrNum[i] > maxNum){maxNum = arrNum[i]; // 保存数值到变量 maxNum}
}
  • 堂案例4: 数组转换为字符串

    • 要求:将数组 ['red', 'green', 'blue', 'pink'] 里面的元素转换为字符串
    • 输出: 'redgreenbluepink'
var arr = ['red', 'green', 'blue', 'pink'];
var str = '';
for (var i = 0; i < arr.length; i++) {str += arr[i];
}
console.log(str);
  • 案例5: 数组转换为分割字符串

    • 要求:将数组 ['red', 'green', 'blue', 'pink'] 转换为字符串,并且用 | 或其他符号分割
    • 输出: 'red|green|blue|pink'
var arr = ['red', 'green', 'blue', 'pink'];
var str = '';
var separator = '|'
for (var i = 0; i < arr.length; i++) {str += arr[i] + separator;
}
console.log(str);

数组中新增元素

通过修改 length 长度新增数组元素

  • 可以通过修改 length 长度来实现数组扩容的目的
  • length 属性是可读写的
var arr = ['red', 'green', 'blue', 'pink'];
arr.length = 7;
console.log(arr);
console.log(arr[4]);
console.log(arr[5]);
console.log(arr[6]);
  • 其中索引号是 4,5,6 的空间没有给值,就是声明变量未给值,默认值就是 undefined

通过修改数组索引新增数组元素

  • 可以通过修改数组索引的方式追加数组元素
  • 不能直接给数组名赋值,否则会覆盖掉以前的数据
var arr = ['red', 'green', 'blue', 'pink'];
arr[4] = 'hotpink';
console.log(arr);
  • 案例 1: 数组新增元素

    • 新建一个数组,里面存放10个整数( 1~10), 要求使用循环追加的方式输出: [1,2,3,4,5,6,7,8,9,10]
var arr = [];
for (var i = 0; i < 10; i++) {arr[i] = i + 1;
}
console.log(arr);
  • 案例 2:筛选数组

    • 要求:将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于等于 10 的元素选出来,放入新数组。
  • 方法1:
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = [];
// 定义一个变量 用来计算 新数组的索引号
var j = 0;
for (var i = 0; i < arr.length; i++) {if (arr[i] >= 10) {// 给新数组newArr[j] = arr[i];// 索引号 不断自加j++;}
}
console.log(newArr);
  • 方法2:
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = [];
for (var i = 0; i < arr.length; i++) {if (arr[i] >= 10) {// 给新数组newArr[newArr.length] = arr[i];}
}
console.log(newArr);

数组案例

  • 案例 1: 删除指定数组元素

    • 要求:将数组[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的 0 去掉后,形成一个不包含 0 的新数组。
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = []; // 空数组的默认的长度为 0
// 定义一个变量 i 用来计算新数组的索引号
for (var i = 0; i < arr.length; i++) {// 找出大于 10 的数if (arr[i] != 0) {// 给新数组// 每次存入一个值,newArr长度都会 +1 newArr[newArr.length] = arr[i];}
}
console.log(newArr);
  • 案例 2: 翻转数组

    • 要求: 将数组 ['red', 'green', 'blue', 'pink', 'purple'] 的内容反过来存放。
    • 输出: ['purple', 'pink', 'blue', 'green', 'red']
var arr = ['red', 'green', 'blue', 'pink', 'purple'];
var newArr = [];
for (var i = 0; i < arr.length; i++) {// newArr 是接收方,arr 是输送方newArr[i] = arr[arr.length - i - 1];
}
console.log(newArr);
  • 案例 3: 数组排序(冒泡排序)

var arr = [5, 4, 3, 2, 1];for (var i = 0; i < arr.length - 1; i++) {for (var 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;}}}
console.log(arr);

(JavaScript学习记录):数组相关推荐

  1. JavaScript学习记录01快速入门、基本语法、严格检查模式

    文章目录 JavaScript学习记录01快速入门.基本语法.严格检查模式 1.1什么是JavaScript 1.2认识JavaScript框架 1.3快速入门 1.4基本语法入门 1.5数据类型简介 ...

  2. javascript学习之数组的使用一 push pop shift unshift 方法

    push() 向数组的末尾添加一个或多个元素,返回数组的当前长度 pop() 从数组的末尾删除一个元素,返回删除的元素的值 unshift() 向数组的前端添加一个或多个元素,返回数组的当前长度 sh ...

  3. JavaScript学习记录

    JavaScript Javascript : 客户端的一个脚本语言 js是一门弱类型语言,变量的数据类型由后面赋的值决定 数据类型: 基本数据类型:数值,字符,布尔... 引用数据类型:new 出来 ...

  4. javascript 学习之 数组式的对象

    javascript数组的特殊之处在于它的length属性: 1,当有元素被添加或删除时,它是自动更新的. 2,通过设置这个属性的值就可以扩展或者截短它. javascript数组也是实例数组,各种方 ...

  5. JavaScript学习记录七

    Typora查看文档工具 Document对象 * JavaScript分三个部分:     * ECMAScript标准:JS的基本的语法     * DOM:Document Object Mod ...

  6. JavaScript学习记录总结(四)——js函数的特殊性

    <script type="text/javascript">   //当局部变量与全局变量 重名的时候    var v="全局变量";//定义全 ...

  7. JavaScript学习记录总结(十)——几个重要的BOM对象

    一.弹出框 <script type="text/javascript">     window.οnlοad=function(){          window. ...

  8. javascript学习之数组的使用四 concat方法 join方法 reverse方法 sort方法

    //concat方法可以连接两个或多个数组或元素,并将新的数组返回 //该方法不会对原数组产生影响 var arr1=[1,2,3,4,5]; var arr2=[6,7,8]; arr3=arr1. ...

  9. javascript学习之数组的使用三 slice方法 splice方法

    result=arrayObject.slice( start , end )      //截取从start(包括)到end(不包括)的所有元素 //end可以是负值,最后一个值为-1 //该函数不 ...

最新文章

  1. mysql 40101
  2. 这八个步骤,Python让你轻松爬取B站弹幕,网友看了都说6
  3. 文本文件 java,java 写文本文件
  4. show processlist结果筛选(转)
  5. Synchronize锁对象
  6. Oracle Minus 取差集
  7. Linux:客户端的实现
  8. php比较两个变量的值_总结PHP不用第三个变量交换两个变量的值的几种方法
  9. 你所能用到的数据结构之番外篇---逆袭的面向对象(一)
  10. node服务器返回文件,Node.js 服务器对应的路由返回对应的 HTML 文件
  11. “从0开始的FreeRTOS”系列教程第一讲
  12. 密探查询系统服务器码,车辆国几排放查询
  13. 【51单片机】OOK无线通讯在无线门磁报警中的应用
  14. Linux软件包管理工具-yum
  15. java中算术异常值_依据拉依达准则来剔除异常值程序
  16. 这些年我用过的API文档工具,个个是精品。
  17. Ubuntu 20.04.5安装无线网卡RTL8821CE驱动
  18. 从Google白皮书看企业安全最佳实践
  19. 暴走的Polkadot (DOT)(上)
  20. 前端培训班学习哪家比较好

热门文章

  1. 前端自学苦于找不到资源,2021最全学习资源整合!
  2. ups计算软件_天津柏克机电工程师解答:什么是后备式UPS不间断电源
  3. PhotoShop入门到精通(三)之 钢笔工具
  4. 用计算机连续计算五道题,事业单位数量关系:数学运算-给我十分钟,还你五道题...
  5. java switch table_关于java:JVM的LookupSwitch和TableSwitch之间的区别?
  6. 【STM32开发环境】Linux下开发stm32(二) | 使用openocd下载程序
  7. navicat连接远程服务器数据库教程
  8. 关于exists 的使用
  9. 周志华 《机器学习》之 第十一章(特征选择与稀疏学习)概念总结
  10. 莫比乌斯函数(数论)(转载+原创)