如何访问数组中对象的变量和方法

问题描述 投票:0回答:2

所以我有一个看起来像这样的课程:

class Car {

    constructor(name, pos) {

        this.carName = name;
        this.carPos = pos;
        
    }

}

然后我最终使用此类创建一个对象数组:

newCar = new Car("Fusion","100 100");
let carManifest = [newCar]

我稍后在代码中继续将

carManifest.push()
其他几个
Car
对象放入数组中,并构建它。最终我遇到了一个 for 循环:

for (index = 0; index < carManifest.length; index++) {
if(carManifest[index].carName === 'Honda')
    <Do Stuff>
}

每当我访问

carManifest[index].carName
时,我都会得到“未定义”。我还在对象中为同一变量提供了一个 get 方法,但在这种情况下使用该方法甚至无法编译。我知道数组本身没有这些变量,但据我所知,在 JS 中没有办法像在 Java 和 C 中那样将数组声明为特定类。

有人可以帮我吗?我是 JS 新手,在过去的一个小时里一直被这个问题困扰。如果没有足够的信息,我会很高兴更新。谢谢!

注意:不确定这是否重要,但我正在使用 Node.js

javascript
2个回答
0
投票

更改您的代码

let carManifest = [newCar]

将项目推入数组

carManifest.push(newCar);

/*
function Car (name, pos) {
   this.carName = name;
   this.carPos = pos;    
}
*/
class Car {
    constructor(name, pos) {
        this.carName = name;
        this.carPos = pos;    
    }
}
newCar = new Car("Fusion","100 100");
let carManifest = [];
carManifest.push(newCar);

for (index = 0; index < carManifest.length; index++) {
if(carManifest[index].carName === 'Fusion'){
    console.log(carManifest[index].carName);
}
}


0
投票

您是否将其他变量或对象推入同一个数组中?您显示的代码示例没有任何问题,您可以通过这种方式访问对象的变量。您必须显示更多代码,您到底在哪里未定义?

© www.soinside.com 2019 - 2024. All rights reserved.