zoukankan      html  css  js  c++  java
  • JS数组定义及详解

    1、什么是数组

    数组就是一组数据的集合

    其表现形式就是内存中的一段连续的内存地址

    数组名称其实就是连续内存地址的首地址

    2、关于js中的数组特点

    数组定义时无需指定数据类型

    数组定义时可以无需指定数组长度

    数组可以存储任何数据类型的数据(比如说一个元素保存整型,一个元素保存字符串型,这个在JS中是可以的)

    创建数组的语法:

    var arr=[值1,值2,值3];                     //隐式创建

    var arr=new Array(值1,值2,值3);      //直接实例化

    var array=new Array(size);           //创建数组并指定长度

    JS中符号含义:

    ()表示函数执行

    []表示语法模拟,表示模拟Array类的实例(=new Array())

    {}表示语法模拟,表示模拟Object类的实例(=new Object())

    //表示语法模拟(正则对象),表示模拟RegExp类的实例(=new RegExp())

     1 //方法一
     2 var arr1 = [1,3,5,7,9];
     3 document.write(arr1[2] + '<br>');
     4     
     5 //方法二
     6 var arr2 = new Array(2,4,6,8,10);
     7 document.write(arr2[3] + '<br>');
     8     
     9 //方法三
    10 var arr3 = new Array(3);//固定数组长度为3
    11 arr3[0] = 1;
    12 arr3[1] = 2;
    13 arr3[2] = 3;
    14 document.write(arr3[2] + '<br>');

    3、关于数组长度

    数组对象.length

    在js中,每一个数组对象都可以调用length属性,它表示数组对象下共有几个数组元素

    示例:

    1 var row = ['zhangsan','lisi','wangwu'];
    2 doucument.write('共有'+row.length+'个人<br>');
    3 
    4 var length = row.length;//对数组进行遍历
    5 for (var i=0;i<length;i++){
    6 doucument.write(row[i]+'<br>');
    7 }    

    4、for...in语句

    在js中,数组不是数据类型,数组的数据类型其实就是对象

    Js中的For.....in语句可以实现对一个对象的所有属性的遍历

    也可以使用for...in语句实现对一个数组的所有元素的遍历

    语法:

    for( var i in array ){

    }

    原理:数组中有几个元素,for..in语句就循环执行多少次

    每次执行时,将当前数组元素的下标存放到变量i中

    1 var row = ['zhangsan','lisi','wangwu','xiaoqiang'];
    2 
    3 for (var i in row){
    4     document.write(i + ':' + row[i] + '<br>');
    5 }    

    结果:

      0:zhangsan
      1:lisi
      2:wangwu
      3:xiaoqiang

    5、文本下标

    格式:

    arr['key'] = value;

    在js中,文本下标的数组元素,不计入数组长度

    以文本下标形式添加到数组,实际是以属性形式添加到数组对象中的

    1 var arr = [1,2,3];
    2 arr['first'] = 'zhangsan';
    3 arr['second'] = 'lisi';
    4 
    5 document.write(arr.length + '<br>');
    6 document.write(arr.first + '<br>');
    7 document.write(arr.second + '<br>');

    结果:

      3
      zhangsan
      lisi

    遍历带有文本下标的数组:

    1 var arr = [1,2,3];
    2 arr['first'] = 'zhangsan';
    3 arr['second'] = 'lisi';
    4 
    5 for(var i in arr){
    6     document.write(i + ':' + arr[i] + '<br>');
    7 }

    结果:

      0:1
      1:2
      2:3
      first:zhangsan
      second:lisi

    6、多维数组

     1 var arr = [
     2         [10,'zhangsan','male'],
     3         [11,'lisi','female'],
     4         [12,'wangwu','male']
     5     ];
     6 for (var i in arr){
     7     for(var j in arr[i]){
     8         document.write(arr[i][j]);
     9     }
    10     document.write('<br>');
    11 }
  • 相关阅读:
    Leetcode 538. Convert BST to Greater Tree
    Leetcode 530. Minimum Absolute Difference in BST
    Leetcode 501. Find Mode in Binary Search Tree
    Leetcode 437. Path Sum III
    Leetcode 404. Sum of Left Leaves
    Leetcode 257. Binary Tree Paths
    Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
    Leetcode 226. Invert Binary Tree
    Leetcode 112. Path Sum
    Leetcode 111. Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/platycoden/p/5204362.html
Copyright © 2011-2022 走看看