处理集合_创建数组_1


 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>创建数组</title>
    <script src="../unitl/test.js"></script>
    <style>
        #results li.pass {color:green;}
        #results li.fail {color:red;}
    </style>


</head>

<body>
    <ul id="results"></ul>

</body>

<script>





    //使用数组字面量[]创建数组。
    const ninjas = ["Kuma","Hattori","Yagyu"];
    //使用内置Array构造函数创建数组
    const samurai = new Array("Oda","Tomoe");


    //length属性高数我们数组的大小
    assert(ninjas.length === 3, "There are three ninjas");
    assert(samurai.length ===2, "And only two samurai");

    //通过索引访问数组元素,第一个元素的索引是0,最后一个数组的索引是数组的长度减1.
    assert(ninjas[0] === "Kuma","Kuma is the first ninja");
    assert(samurai[samurai.length - 1] === "Tomoe","Tomoe is the last samurai");


    //对超出数组世界的项,导致undefined。
    assert(ninjas[4] === undefined ,"We get undefined if we try to access an out of bounds index");


    //对超出数组边界的索引写入元素将扩充数组。
    ninjas[4] = "Ishi";
    assert(ninjas.length === 5, "Array are automatically expanded");
    


    //手动修改数组的length属性为更小数值,将会删除多余的元素。
    ninjas.length = 2;
    assert(ninjas.length ===2, "There are only two ninjas now");
    assert(ninjas[0] === "kuma" && ninjas[1] === "Hattori", "Kuma and Hattori");

    assert(ninjas[2] === undefined,"But we've lost Yagyu");





</script>
</html>



      

本例子中引入的js: test.js

在本例子中,创建了两个数组,通过数组字面量创建数组ninja:

const ninjas = ["Kuma","Hattori","Yagyu"];

数组ninjas中立即填充3个元素:Kuma,Hattori和Yagyu。数组samurai通过内置的Array构造函数创建:

const samurai = new Array("Oda","Tomoe");
     提示: 使用数组字面量创建优于数组构造函数。主要原因很简单[]与 new Array()(2个字符与11个字符(包含空格))。此外,由于javascript的高度动态特性,无法阻止修改内置的Array构造函数,
也就意味者new Array()创建的不一定是数组。因此推荐使用数组字面量。

无论使用哪种方式创建数组,每个数组都具有length属性,表示数组的长度。例如:数组ninjas的长度是3,包含3个“忍者”。我们可以这样验证:

 assert(ninjas.length===3,"There are three ninjas");
 assert(samurai.length===2,"And only two samurai");     

通过使用索引访问数组元素,第1个元素的索引是0,最后一个数组的索引是数组长度减1。但是如果视图访问数组长度范围之外的索引,例如ninjas[4],而ninjas的长度是3,
它不会像其他语言那样抛出异常,而是返回undefined。
另一方面,若在数组边界之外写入元素写入元素,例如:

      ninjas[4] = "Ishi";

数组将会扩大以适应新的形势。
与其他大多数语言不同,javaScript在length属性上,也表现出一种特殊的功能:可以手动修改length属性的值;将length值改为比原有值大的数,数组会被扩展,新扩展出的元素均为undefined;
将length改为比原有值小的数,数组会被裁剪。

上一篇:assert()


下一篇:RE2—C++