• JavaScript数据结构 数组 1


    JavaScript数据结构 ---- 数组

    1. 使用数组

    1.1 创建数组

    使用 [ ] 创建一个长度为 0 的空数组:

    var num = [];
    console.log(num.length);    // 0
    

    也可以在声明数组变量时在 [ ] 中放入一组元素:

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

    还可以调用 Array 的构造函数创建数组:

    var num1 = new Array();
    console.log(num1.length);    // 0
    
    var num2 = new Array(1,2,3,4,5,6);
    console.log(num2.length);    // 6
    

    如果在调用 Array 的构造函数时,只传入一个参数,那么这个参数就是数组的长度:

    var num = new Array(1024);
    console.log(num.length);    // 1024
    

    JavaScript里数组中的元素不必是同一种数据类型:

    var object = [1, "JavaScript", true, null];
    

    可以调用 Array.isArray() 来判断一个对象是否是数组:

    var num = 3;
    var arr = [1,2,3,4];
    console.log(Array.isArray(num));  // false
    console.log(Array.isArray(arr));  // true
    

    有一种方法可以判别各种对象类型:

    function isArray(arr) {
        return Object.prototype.toString.call(arr) === '[object Array]';
    }
    

    只需把 Array 换成其他类型即可(eg:Function)。


    1.2 读写数组
    使用 [ ] 操作符读取数组中的元素:

    var num = [1,2,3,4,5];
    var sum = num[0] + num[1] + num[2] + num[3] + num[4];
    console.log(sum);   // 15
    

    想要依次读取数组的话,可以使用 for 循环:

    var num = [1,3,5,7,8,10,12];
    var sum = 0;
    for (var i = 0; i < num.length; i++) {
    	sum += num[i];
    }
    console.log(sum);   // 46
    

    调用字符串对象的 split() 方法可以生成数组,该方法通过分隔符(比如单词间的空格),将一个字符串分成几部分保存在数组中。

    var sentence = "This is a time of wonder";
    var words = sentence.split(" ");
    console.log(words);  // ["This", "is", "a", "time", "of", "wonder"]
    

    1.3 整体操作数组
    浅复制 ---- 当把一个数组赋值给另外一个数组时,只是为被赋值的数组增加了一个新的引用。当原引用变化时,另一个引用也会变化。

    var num = [];
    for (var i = 0; i < 5; i++) {
    	num[i] = i * i;
    }
    var yetnum = num;
    num[0] = 1024;
    console.log(yetnum);  // [1024, 1, 4, 9, 16]
    

    深复制 ---- 将原数组中的每一个元素都复制一份到新数组中。

    function copy(arr1, arr2) {
    	for (var i = 0; i < arr1.length; i++) {
    		arr2[i] = arr1[i];
    	}
    }
    //一个实现深复制的函数
    
  • 相关阅读:
    网络基础
    关于actionscript中新建一个sprite,设置大小(宽高)的问题。
    Android SDK无法更新问题解决 ---- 还可解决无法上google的问题
    android apk简单反编译
    Flash的坑之ExternalInterface.call只返回null值的解决办法
    Flash Socket简单调试工具
    进制转换 正进制
    Codeforces Div3 #498 A-F
    UVa10082
    div与div之间的拖拽
  • 原文地址:https://www.cnblogs.com/zhoufulin/p/4996465.html
Copyright © 2020-2023  润新知