TypeScript 中的动态数组 (Angular2+)
Dynamic arrays in TypeScript (Angular2+)
我正在尝试创建一个基于整数的动态数组,因此,假设整数 i = 3,它将创建一个长度为 3 的数组。
counter (i: number) {
return new Array(i);
}
为什么这个 return 是一个长度为 1 的数组和一个值为 i 的成员,而不是长度为 i 的数组?
编辑:
我正在尝试做的解决方法是:
counter (i: number) {
var a = new Array();
for (var x = 0; x < i; x++)
a.push(x);
return a;
}
我只是对数组构造函数的行为感到好奇。
通过使用 angular 核心 5.0.0 测试您的示例,该函数将创建一个长度为 4 的数组,当您执行 the resulting variable.length
时它将等于 4。因此,给定 link 之前有您需要了解结果的所有内容。
这是一个演示:
https://stackblitz.com/edit/angular-9effym?file=app%2Fapp.component.html
(直接 link,用于使用开发工具进行调试:https://angular-9effym.stackblitz.io)
结果
Hello !
Array length: 4
value 0 = undefined
value 1 = undefined
value 2 = undefined
value 3 = undefined
代码:
app.component.html:
<hello name="{{ name }}"></hello>
<div>
<br>
Array length: {{xx.length}}
<br>
<br>
<div *ngFor="let value of xx; let i = index">
value {{i}} = {{value+''}}
</div>
</form>
<br>
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
xx:any;
ngOnInit() {
this.xx = this.counter(4);
}
counter(i: number){
return new Array(i);
}
}
注:
由于我们没有初始化数组的元素,因此内容将是未定义的,我通过在模板中使用 {{value+''}}
将内容转换为字符串来演示
我正在尝试创建一个基于整数的动态数组,因此,假设整数 i = 3,它将创建一个长度为 3 的数组。
counter (i: number) {
return new Array(i);
}
为什么这个 return 是一个长度为 1 的数组和一个值为 i 的成员,而不是长度为 i 的数组?
编辑: 我正在尝试做的解决方法是:
counter (i: number) {
var a = new Array();
for (var x = 0; x < i; x++)
a.push(x);
return a;
}
我只是对数组构造函数的行为感到好奇。
通过使用 angular 核心 5.0.0 测试您的示例,该函数将创建一个长度为 4 的数组,当您执行 the resulting variable.length
时它将等于 4。因此,给定 link 之前有您需要了解结果的所有内容。
这是一个演示:
https://stackblitz.com/edit/angular-9effym?file=app%2Fapp.component.html
(直接 link,用于使用开发工具进行调试:https://angular-9effym.stackblitz.io)
结果
Hello !
Array length: 4
value 0 = undefined
value 1 = undefined
value 2 = undefined
value 3 = undefined
代码:
app.component.html:
<hello name="{{ name }}"></hello>
<div>
<br>
Array length: {{xx.length}}
<br>
<br>
<div *ngFor="let value of xx; let i = index">
value {{i}} = {{value+''}}
</div>
</form>
<br>
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
xx:any;
ngOnInit() {
this.xx = this.counter(4);
}
counter(i: number){
return new Array(i);
}
}
注:
由于我们没有初始化数组的元素,因此内容将是未定义的,我通过在模板中使用 {{value+''}}
将内容转换为字符串来演示