安国圣山刁景超 發表於 2020-6-25 23:32:00

TypeScript(11): Array(数组)

<p>数组对象是使用单独的变量名来存储一系列的值。</p><p>假如你有一组数据(例如:网站名字),存在单独变量如下所示:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> site1="Google"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">var</span> site2="Runoob"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">var</span> site3="Taobao";</pre></div><p>如果有 10 个、100 个这种方式就变的很不实用,这时我们可以使用数组来解决:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> sites:string[];
sites </span>= ["Google","Runoob","Taobao"]</pre></div><p>这样看起来就简洁多了。</p><h2>一、TypeScript 声明数组</h2><p>TypeScript 声明数组的语法格式如下所示:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> array_name<span style="background-color: rgba(255, 192, 0, 1)">[:datatype]</span>;      <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">声明 </span>
array_name =    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">初始化</span></pre></div><p>或者直接在声明时初始化:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> array_name[:data type] = </pre></div><p>如果数组声明时未设置类型,则会被认为是 any 类型,在初始化时根据第一个元素的类型来推断数组的类型。</p><h3>实例</h3><p>创建一个 number 类型的数组:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> numlist<span style="background-color: rgba(255, 192, 0, 1)">:number[]</span> = </pre></div><p><strong>1、我们可以根据索引值来访问数组元素:</strong></p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> sites:string[];
sites </span>= ["Google","Runoob","Taobao"<span style="color: rgba(0, 0, 0, 1)">]
console.log(sites[</span>0<span style="color: rgba(0, 0, 0, 1)">]);
console.log(sites[</span>1]);</pre></div><p></p><p>编译以上代码,得到以下 JavaScript 代码:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> sites;
sites </span>= ["Google", "Runoob", "Taobao"<span style="color: rgba(0, 0, 0, 1)">];
console.log(sites[</span>0<span style="color: rgba(0, 0, 0, 1)">]);
console.log(sites[</span>1]);</pre></div><p></p><p>输出结果为:</p><blockquote><pre>Google
Runoob</pre></blockquote><p><strong>2、以下实例我们在声明时直接初始化:</strong></p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> nums:number[] =
console.log(nums[</span>0<span style="color: rgba(0, 0, 0, 1)">]);
console.log(nums[</span>1<span style="color: rgba(0, 0, 0, 1)">]);
console.log(nums[</span>2<span style="color: rgba(0, 0, 0, 1)">]);
console.log(nums[</span>3]);</pre></div><p></p><p>编译以上代码,得到以下 JavaScript 代码:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> nums = ;
console.log(nums[</span>0<span style="color: rgba(0, 0, 0, 1)">]);
console.log(nums[</span>1<span style="color: rgba(0, 0, 0, 1)">]);
console.log(nums[</span>2<span style="color: rgba(0, 0, 0, 1)">]);
console.log(nums[</span>3]);</pre></div><p></p><p>输出结果为:</p><blockquote><pre>1
2
3
4 </pre></blockquote><h2>二、Array 对象</h2><p>我们也可以使用 Array 对象创建数组。</p><p>Array 对象的构造函数接受以下两种值:</p><ul><li>表示数组大小的数值。
</li><li>初始化的数组列表,元素使用逗号分隔值。</li></ul><h3>实例</h3><p><strong>1、指定数组初始化大小:</strong></p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> arr_names:number[] <span style="background-color: rgba(255, 255, 0, 1)">= <span style="color: rgba(0, 0, 255, 1)">new</span> Array(4</span><span style="color: rgba(0, 0, 0, 1)"><span style="background-color: rgba(255, 255, 0, 1)">)</span>

</span><span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i = 0; i) {
      arr_names = i * 2<span style="color: rgba(0, 0, 0, 1)">
      console.log(arr_names)
}</span></arr_names.length;></pre></div><p></p><p>编译以上代码,得到以下 JavaScript 代码:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> arr_names = <span style="color: rgba(0, 0, 255, 1)">new</span> Array(4<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(0, 0, 255, 1)">var</span> i = 0; i &lt; arr_names.length; i++<span style="color: rgba(0, 0, 0, 1)">) {
      arr_names </span>= i * 2<span style="color: rgba(0, 0, 0, 1)">;
      console.log(arr_names);
}</span></pre></div><p></p><p>输出结果为:</p><blockquote><pre>0
2
4
6</pre></blockquote><p><strong>2、直接初始化数组元素:</strong></p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> sites:string[] <span style="background-color: rgba(255, 255, 0, 1)">= <span style="color: rgba(0, 0, 255, 1)">new</span> Array("Google","Runoob","Taobao","Facebook"</span><span style="color: rgba(0, 0, 0, 1)"><span style="background-color: rgba(255, 255, 0, 1)">)</span>

</span><span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i = 0;i<sites.length;i++<span style="color: rgba(0, 0, 0, 1)">) {
      console.log(sites)
}</sites.length;i++<span></pre></div><p></p><p>编译以上代码,得到以下 JavaScript 代码:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> sites = <span style="color: rgba(0, 0, 255, 1)">new</span> Array("Google", "Runoob", "Taobao", "Facebook"<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(0, 0, 255, 1)">var</span> i = 0; i &lt; sites.length; i++<span style="color: rgba(0, 0, 0, 1)">) {
      console.log(sites);
}</span></pre></div><p></p><p>输出结果为:</p><blockquote><pre>Google
Runoob
Taobao
Facebook</pre></blockquote><h2>三、数组解构</h2><p>我们也可以把数组元素赋值给变量,如下所示:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> arr:number[] =
</span><span style="background-color: rgba(255, 255, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">var</span> = arr</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 将数组的两个元素赋值给变量 x 和 y</span>
<span style="color: rgba(0, 0, 0, 1)">console.log(x)
console.log(y)</span></pre></div><p></p><p>编译以上代码,得到以下 JavaScript 代码:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> arr = ;
</span><span style="color: rgba(0, 0, 255, 1)">var</span> x = arr, y = arr; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 将数组的两个元素赋值给变量 x 和 y</span>
<span style="color: rgba(0, 0, 0, 1)">console.log(x);
console.log(y);</span></pre></div><p></p><p>输出结果为:</p><blockquote><pre>12
13</pre></blockquote><h2>四、数组迭代</h2><p>我们可以使用 for 语句来循环输出数组的各个元素:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> j:any;
</span><span style="color: rgba(0, 0, 255, 1)">var</span> nums:number[] =

</span><span style="color: rgba(0, 0, 255, 1)">for</span>(j <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> nums) {
    console.log(nums)
}</span></pre></div><p></p><p>编译以上代码,得到以下 JavaScript 代码:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> j;
</span><span style="color: rgba(0, 0, 255, 1)">var</span> nums = ;
</span><span style="color: rgba(0, 0, 255, 1)">for</span> (j <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> nums) {
    console.log(nums);
}</span></pre></div><p></p><p>输出结果为:</p><blockquote><pre>1001
1002
1003
1004</pre></blockquote><h2>五、多维数组</h2><p>一个数组的元素可以是另外一个数组,这样就构成了多维数组(Multi-dimensional Array)。</p><p>最简单的多维数组是二维数组,定义方式如下:</p><blockquote><pre>var arr_name:datatype[][]=[ , ]</pre></blockquote><h3>实例</h3><p>定义一个二维数组,每一个维度的数组有三个元素。</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> <span style="background-color: rgba(255, 255, 0, 1)">multi:number[][] = [,]</span>
console.log(multi[</span>0])
console.log(multi[</span>0])
console.log(multi[</span>0])
console.log(multi[</span>1])
console.log(multi[</span>1])
console.log(multi[</span>1])</pre></div><p></p><p>编译以上代码,得到以下 JavaScript 代码:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> multi = [, ];
console.log(multi[</span>0]);
console.log(multi[</span>0]);
console.log(multi[</span>0]);
console.log(multi[</span>1]);
console.log(multi[</span>1]);
console.log(multi[</span>1]);</pre></div><p></p><p>输出结果为:</p><blockquote><pre>1
2
3
23
24
25</pre></blockquote><h2>六、数组在函数中的使用</h2><h3>1、作为参数传递给函数</h3><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> sites:string[] = <span style="color: rgba(0, 0, 255, 1)">new</span> Array("Google","Runoob","Taobao","Facebook"<span style="color: rgba(0, 0, 0, 1)">)

</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> disp(arr_sites<span style="background-color: rgba(255, 192, 0, 1)">:string[]</span>) {
      </span><span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i = 0;i) {
                console.log(arr_sites)
      }
}
disp(sites);</arr_sites.length;i++<span></pre></div><p></p><p>编译以上代码,得到以下 JavaScript 代码:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">var</span> sites = <span style="color: rgba(0, 0, 255, 1)">new</span> Array("Google", "Runoob", "Taobao", "Facebook"<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> disp(arr_sites) {
      </span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(0, 0, 255, 1)">var</span> i = 0; i &lt; arr_sites.length; i++<span style="color: rgba(0, 0, 0, 1)">) {
                console.log(arr_sites);
      }
}
disp(sites);</span></pre></div><p></p><p>输出结果为:</p><blockquote><pre>Google
Runoob
Taobao
Facebook</pre></blockquote><h3>2、作为函数的返回值</h3><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> disp():string[] {
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">new</span> Array("Google", "Runoob", "Taobao", "Facebook"<span style="color: rgba(0, 0, 0, 1)">);
}

</span><span style="color: rgba(0, 0, 255, 1)">var</span> sites<span style="background-color: rgba(255, 192, 0, 1)">:string[]</span> =<span style="color: rgba(0, 0, 0, 1)"> disp()
</span><span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> sites) {
      console.log(sites)
}</span></pre></div><p></p><p>编译以上代码,得到以下 JavaScript 代码:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> disp() {
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">new</span> Array("Google", "Runoob", "Taobao", "Facebook"<span style="color: rgba(0, 0, 0, 1)">);
}
</span><span style="color: rgba(0, 0, 255, 1)">var</span> sites =<span style="color: rgba(0, 0, 0, 1)"> disp();
</span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(0, 0, 255, 1)">var</span> i <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> sites) {
      console.log(sites);
}</span></pre></div><p></p><p>输出结果为:</p><blockquote><pre>Google
Runoob
Taobao
Facebook</pre></blockquote><h2>七、数组方法</h2><p>下表列出了一些常用的数组方法:</p><p><img width="841" height="3601" title="image" style="margin: 0; border: 0 currentColor; border-image: none; display: inline; background-image: none" alt="image" src="https://img2020.cnblogs.com/blog/24244/202006/24244-20200625233145521-1983563839.png" border="0"></p><br><br>
来源:https://www.cnblogs.com/springsnow/p/13193462.html
頁: [1]
查看完整版本: TypeScript(11): Array(数组)