js基础之数组(简单数组及复杂数组)

定义

多个数据的组合,节省变量

创建数组
  1. 字面量创建数组: var arr = [1, 2, 3, 4, 5, 6]; 在一个数组中对于数据的类型没有要求

  2. 构造函数创建对象: var arr = new Array(1, 2, 3, 4,‘a’);(构造函数首字母大写)

    注意:以上两种最终都是对象,一切皆对象

访问数组

通过数组的下标(索引值)

设置数组元素的值

也是通过数组的下标(索引值)

arr[ 0] = '安慕希';

arr[2] = '中国';

数组的类型

typeof arr == object

属性

数组长度 ---------------------------------------- ---------------------arr.length 值为number类型的

计算数组的最小下标和最大下标 -------------------------------------- 0 arr.length-1

数组遍历

思想:通过arr.length 来获取数组的长度, 来计算数组的最大下标

应用1:数组元素的累加求和

思想,找到每一项,加到一起,需要遍历数组 sum = sum +arr[i]

求有效数字的方法: toFixed(2);

应用2:求数组的最大值、最小值、以及最值在数组中的位置

清空数组

数组中灭有元素的时候,数组的长度为0 所以清空数组 使用arr.length;

向数组中添加元素

通过数组名[下标]赋值,并且数组的长度动态的增加

arr[0] = 1;

arr[1] = 2;

arr[2] = 3;

arr[arr.length] = 数据

ar.length永远指向数组中最后一个元素的后面一个位置

应用1、筛选元素添加到新数组中

需求:将数组中不为零的数组添加到新数组中var n = [1,2,0,3,0,4,0,9,0];​var arr = [];​for( var i = 0; i < n.length; i++) {​    if( n[i] != 0) {        arr[arr.length] = n[i];    }​}console.log(arr);复制代码

应用2:翻转数组

function reverse(arr) {    var newArr = [];    for ( var i = arr.length-1; i >= 0; i--) {        newArr[newArr.length] = arr[i];    }     return newArr;}var arr = [1,2,3,4,5];reverse(arr);复制代码

二维数组(js中不存在这样的名字,其他语言中有这个叫法)-------------------复杂数组

访问数组中的元素
var arr = [    [1,2,3],    [4,5,6],    [7,8,9]]console.log(arr[0])console.log(arr[1])console.log(arr[2])// 以上访问的是每一行  也就是三个一维数组console.log(arr[0][0])// 访问具体的某个数复制代码
求二维数组中所有数的和
var sum = 0;var arr = [    [1,2,3],    [4,5,6],    [7,8,9]];for(var i = 0; i < arr.length; i++) {    var s = 0;    for(var j = 0; j < arr[i].length; j++) {        s = s + arr[i][j];    }    sum = sum + s; }//   方式2for(var i = 0; i < arr.length; i++) {    for(var j = 0; j < arr[i].length; j++) {        sum = sum + arr[i][j];    }}复制代码

(二维数组,逻辑,偏难)定义一个二维数组(3行4列),输入任意12个数值,求该数组的平均值,最大值,最小值,两个下标均为奇数的数的和

var arr = [    [1,2,3],    [4,5,6],    [7,8,9]]// 求平均值var sum = 0;var s = 0;var count = 0;var max = arr[0][0];var min = arr[0][0];for (var i = 0; i < arr.length; i++) {    for (var j = 0; j < arr[i].length; j++) {        if (min > arr[i][j]) {            min = arr[i][j]        }        if (max < arr[i][j]) {            max = arr[i][j]        }        if (i == j) {            s = s + arr[i][j];        }         sum = sum + arr[i][j];        count ++    }}console.log("平均值是:"+sum/count)console.log("最小值是:"+min);console.log("最大值是:"+max);console.log("下标相等的元素的和:"+s);//输出结果为//平均值是:5//28 最小值是:1//29 最大值是:9//30 下标相等的元素的和:15复制代码

学习心得:

要围绕着增删改查的概念去学习数组,围绕着循环结构数组的属性(length属性,访问方式)来使用数组;

作者:张敬辉


转载于:https://juejin.im/post/5d04a76de51d454f723024f6

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值