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+''}} 将内容转换为字符串来演示