具有自定义类的多维数组

2024-03-28

我正在寻找一个数组声明、初始化和访问数组,该数组将具有

表/数组(及其行)将如下所示:

    CusomClass1Instance;Number;CusomClass2Instance
    CusomClass1Instance;Number;CusomClass2Instance
    CusomClass1Instance;Number;CusomClass2Instance
    CusomClass1Instance;Number;CusomClass2Instance
...

我曾经这样声明:

let result: [CusomClass1Instance, Number, CusomClass2Instance][] 

为了初始化我尝试了这样的事情:

result= [[new CusomClass1Instance(_id)], [new Number()], [new CusomClass2Instance(_id)]][];

我有麻烦(在这种情况下): 1.初始化为空 2.写入(使用push、index) 3.访问它

先感谢您。


let result: [CusomClass1Instance, Number, CusomClass2Instance][]

这是一个“元组”数组,Typescript 使用它来表示每个元素可能具有不同类型的固定长度数组。外部数组的每个元素都是一个包含三个元素的数组:CusomClass1Instance、Number 和 CustomClass2Instance。这使得它成为数组的数组, but 外部数组每行一个元素.

// incorrect
result=[[new CusomClass1Instance(_id)], [new Number()], [new CusomClass2Instance(_id)]][];

在这里,您将其分配给一个三元素数组,其中三个元素中的每一个都是一个数组。即使在作业中,您也可以在末尾应用一组空方括号。无论如何,这种语法更接近于不同的结构,其中外部数组每列一个元素.

初始化

一旦你设置了数组类型,Typescript 很乐意让你设置一个空数组作为初始化器:

result = [];

如果你想将它初始化为非空,你也可以这样做,但是你必须将它分配给一个三元素数组的数组:

result = [[new CusomClass1Instance(_id), new Number(), new CusomClass2Instance(_id)]];

请注意,您使用了两组方括号:外括号用于元组数组,内括号用于定义元组。另请注意,您可能不需要致电new Number(),但可以只传递数字本身:

result = [
    [new CusomClass1Instance(id1), 1, new CusomClass2Instance(id1)],
    [new CusomClass1Instance(id2), 2, new CusomClass2Instance(id2)]
];

修改和访问

您可以推送到结果数组,但需要确保推送的每个元素都是匹配的三元素元组。

result.push([new CusomClass1Instance(_id), new Number(), new CusomClass2Instance(_id)]);

当您访问它时这也适用:

let threeElementArray = result[index];
threeElementArray[0] // CusomClass1Instance
threeElementArray[1] // number
threeElementArray[2] // CusomClass2Instance

您可以使用解包/解构语法来简化此操作:

let [class1, yourNumber, class2] = result[index];
// Now you have one variable per value, without defining an explicit
// threeElementArray variable.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有自定义类的多维数组 的相关文章

随机推荐

  • Erlang 中事件流(又名 CEP)的实时关联/分析有什么框架吗?

    想要分析具有某些特征 例如公共来源 的事件流 并在给定的时间窗口内 最终将这些多个事件关联起来并从中得出一些推论 最后启动一些操作 我对复杂事件处理 CEP 的有限了解告诉我 它是此类事情的理想选择 然而 在我迄今为止的研究中 我发现人们将
  • FB.event.subscribe comment.create 无需用户操作即可执行操作[重复]

    这个问题在这里已经有答案了 好的 这就是我的问题 我试图在 Facebook 评论中发表评论后向个别帖子的作者发送一封电子邮件 以通知作者已发表评论 评论框位于 K2 项目中 在 Joomla 中 FB event subscribe co
  • stackwalker加载所有符号文件,但仍然没有符号化任何东西

    我可能做错了什么 但我无法弄清楚这一点 我有一个在 Windows 上生成的简单崩溃小型转储 如果我在 Visual Studio 中打开转储 它会毫无问题地加载并显示崩溃线 但我无法让它在 minidump stackwalker 中进行
  • Java 是否保证当前同步的对象不会被垃圾回收?

    当线程持有其监视器时 是否可以保证对象不会被垃圾收集 e g class x private WeakReference r Object getMonitorObject Object o new Object r new WeakRef
  • 如何通过添加像素跟踪来跟踪各个收件人的阅读状态

    我正在构建一个电子邮件应用程序 其功能是在发送电子邮件后查看已读收件人 例如 如果我向 P1 发送了一封电子邮件并抄送 P2 和 P3 那么当 P1 打开电子邮件时 我作为发件人应该能够看到 P1 阅读了他们的电子邮件 为了实现这一目标 我
  • Firebase DB HTTP API 身份验证:何时以及如何刷新 JWT 令牌?

    我正在尝试使用 HTTP API 将 Python Web 应用程序写入 Firebase DB 我正在使用 Google I O 2016 上推出的新版本 Firebase 到目前为止 我的理解是 我想要完成的特定类型的写入是通过对此类型
  • MySQL字段类型如何转换?

    我已经遇到过转换函数 据我了解 基本语法是 select convert columnName targetFieldType as newColumnName from table 运行此命令不会给我任何错误 但是当我检查数据类型时它们没
  • WebGL 渲染抗锯齿

    我正在使用 webgl 和 javascript 有没有一种方法可以在不使用抗锯齿的情况下进行渲染 我需要每个像素都是纯色的 我当前的片段着色器非常简单 precision mediump float varying highp vec3
  • flutter 中出现无效的互联网地址错误

    我将图像上传到 Firebase Storage 然后获取图像的 Url 到 Firebase Storage 创建的图像链接 然后我将图像的 url 保存在 Firestore Documents 中 如果消息有图像并且当我想显示消息时
  • 您如何解释查询的解释计划?

    当尝试了解 SQL 语句如何执行时 有时建议查看解释计划 在解释 理解 解释计划时应该经历什么过程 什么应该脱颖而出 哦 这工作得很好 与 哦 不 那是不对的 每当我看到关于全表扫描不好而索引访问很好的评论时 我都会感到不寒而栗 全表扫描
  • __builtin_trap:什么时候使用它?

    gcc 提供了额外的内置函数 用于优化 其中之一是void builtin trap void 本质上是通过执行非法命令来中止程序 来自文档 builtin trap函数导致程序异常退出 GCC 实现了这个 通过使用目标相关机制 例如有意
  • SoundCloud API:audiomanager.js 上的 setVolume

    我们在使用 SoundCloud Javascript API 时遇到了 setVolume 函数的问题 踪迹 未捕获的 IndexSizeError 索引或大小为负数 或大于允许的值 音频管理器 js 2 HTML5AudioPlayer
  • SLURM:如何限制CPU作业数量以避免浪费GPU资源

    我们使用 SLRUM 在节点之间共享 CPU 和 GPU 资源 有时 GPU 作业无法提交 因为有人提交了满的 CPU 作业 这样的话 就浪费了GPU资源 我该如何制定政策来避免这种冲突 例如 是否可以限制 GPU 作业节点上的最大 CPU
  • 如何修复“compilerVersion”IIS 错误?

    我收到这个异常 System Configuration ConfigurationErrorsException 的值 提供程序选项中的 compilerVersion 属性必须是 v4 0 或 如果您正在编译 4 0 或更高版本的 NE
  • JMS/消息队列的实际使用? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我刚刚阅读了一些有关 JMS 和 Apache ActiveMQ 的内容 想知道这里的人们使用 JMS 或类似的消息队列技术在现实世界
  • 调用可以抛出错误,但错误不能从全局变量初始值设定项中抛出

    我正在使用 Xcode 7 beta 迁移到 Swift 2 后 我遇到了这行代码的一些问题 let recorder AVAudioRecorder URL soundFileURL settings recordSettings as
  • WordPress 重写仅向页面添加基本前缀

    我在尝试完成一个项目时遇到了一个问题 我将当前的永久链接结构设置为 postname 我创建了自己的函数 只为帖子提供前缀 因此我的帖子被重写为 prefix postname 我的问题是我想更改的永久链接pages正如我对帖子所做的那样
  • 在哪里可以找到 libsystem_c.dylib 的源代码?

    我的堆栈跟踪中有一行奇怪的行 我想进一步调查 12 libsystem c dylib 0x3aa272dc free 168 如果我理解正确的话 libsystem c 是 C 标准库 iOS使用的版本是开源的吗 我在哪里可以获得该来源
  • 使用 nodemailer 发送邮件 - 来自字段的电子邮件不正确

    尝试使用 nodemailer 设置联系表单 这是我的 app js 中的内容 EMail configuration var smtpTransport nodemailer createTransport SMTP service Gm
  • 具有自定义类的多维数组

    我正在寻找一个数组声明 初始化和访问数组 该数组将具有 表 数组 及其行 将如下所示 CusomClass1Instance Number CusomClass2Instance CusomClass1Instance Number Cus