【问题标题】:Typescript create array with loop dynamically打字稿动态创建带有循环的数组
【发布时间】:2020-07-07 01:56:12
【问题描述】:

我正在创建一个模拟类,用于为我的 Angular2 TypeScript 项目生成示例数据。我仍然是编程的初学者,并且与可用的关于 TypeScript 的信息斗争。我的问题:

我想创建 100 个项目并将它们保存在一个数组中。这 100 个项目将动态生成。我使用的静态方式非常简单,但我如何动态地做到这一点?我从一些迭代代码开始,但是我怎样才能最好地替换 console.log 代码,并让迭代的输出作为静态数据。我需要一些例子

mock-names.ts(静态)

export var NAMES: Name[] = [
    {"id": 01, "name": "Tony"},
    {"id": 02, "name": "Jake"}
]

mock-names-dynamically.ts(动态)

export var NAMES = [];

for (let i = 1; i < 100; i++) {
    console.log(i);
}

name.ts(名称类文件)

export class Name {
    id: number;
    name: string;
}

【问题讨论】:

  • 名称值从何而来?另外,您似乎有一个名为Name的课程,可以在这里发布这个课程吗?
  • 使用了类名.ts。我将课程添加到我的帖子中。

标签: typescript angular


【解决方案1】:

你只需要在Javascript中使用数组的push函数就可以了。

var NAMES = [];
for (let i = 1; i < 100; i++) {
    let newName = {
       id:i.toString(),
       name:"Tony"
    };
    NAMES.push(newName);
}

【讨论】:

  • 谢谢,我明白你的代码在做什么。我会试试这个!
  • 我工作但不完全适合我。这 100 个项目仅使用名称创建,没有 ID。我需要弄清楚这一点。但我现在的方向是正确的,谢谢。
  • 根据我的代码sn-p,每个对象的id应该是i值的字符串表示。请仔细检查您的代码。
  • 这很愚蠢 问题出在我的课堂上,抱歉。但再次感谢!
【解决方案2】:

ES6 方式:

 const getData = () => Array.from(new Array(100), (val, index) => ({
       id:index.toString(),
       name:"Tony"
    };);

【讨论】:

    【解决方案3】:

    动态初始化的另一种方式,如果你不确定数组的大小-

    let list:Array<{_id:string,name:string}> = Array()
    

    然后简单地使用循环推送值

    list.push({_id:'it001',name:'Sam'})
    

    【讨论】:

      猜你喜欢
      • 2022-12-22
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 2020-12-01
      • 2020-12-14
      • 1970-01-01
      • 2017-04-30
      相关资源
      最近更新 更多