【问题标题】:Can I store an array of custom data types inside a custom object in javascript我可以在javascript中的自定义对象中存储一组自定义数据类型吗
【发布时间】:2017-07-15 18:04:53
【问题描述】:

我需要一个员工的自定义对象,所以我在 staff.js 中有这个:

    function Staff(name, shouldBeRemoved, officeName, dateHired) {
        this.name = name;
        this.shouldBeRemoved = shouldBeRemoved;
        this.officeName = officeName;
        this.dateHired = dateHired;
    }

我在 office.js 中还有一个 Office 的自定义对象:

    function Office(name, shouldBeRemoved, staffMembers) {
        this.name = name;
        this.shouldBeRemoved = shouldBeRemoved;
        this.staffMembers = staffMembers;
    }

我想使用 staffMembers 属性作为 Office 中的一个 Staff 对象数组。

但是当我尝试将一个新的人员对象推送到我的 Office 对象中的人员成员数组中时,什么也没有发生:

staff = new Staff(name, false, officeSelected, d.toDateString());
        for (i=0; i<officeArray.length; i++) {
            if (officeArray[i].name == officeSelected) {
                officeArray[i].staffMembers.push(staff);
            }
        }

【问题讨论】:

  • “什么都没有发生”是什么意思?
  • officeArray[i].staffMembers.push(staff); 行没有运行。没有任何东西追随它。如果我在那之后尝试打开一个警报窗口,它就不会打开。
  • 你有 js fiddle 吗?你的控制台说什么?您是否遇到错误或 staffMembers 为空?
  • 不,我从未使用过 js fiddle,我会尝试的。我认为 staffMembers 只是空的。让我看看我能不能找到。 (抱歉,我对 javascript 有点陌生)
  • 是否报告了错误? Office 实例的构造是什么样的;你确定staffMembers 正在初始化为一个新的空数组吗?

标签: javascript arrays custom-object custom-data-type


【解决方案1】:

我的建议是开始使用 Typescript,原因是数据类型和类有一个清晰的画面。

 staff = new Staff(name, false, officeSelected, d.toDateString());
    for (i=0; i<officeArray.length; i++) {
        if (officeArray[i].name == officeSelected) {
            officeArray[i].staffMembers.push(staff);
        }
    }

这里你应该检查 officeArray[i].name === staff.officeSelected

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-12
    • 2019-07-28
    • 2012-02-02
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多