function Type(name, effectivenessData) {
this.name = name;
this.effectivenessData = effectivenessData;
}
var types = [
new Type("Fire", ["X", "X", "O", "", "O"]),
new Type("Water", ["O", "X", "X", "", ""]),
new Type("Grass", ["X", "O", "X", "", ""]),
new Type("Electric", ["", "O", "X", "X", ""]),
new Type("Ice", ["X", "X", "O", "", "X"])
];
var getTypes = function getTypeNames() {
return types.map(t => t.name);
}
我的解决方案:大家好,我正在使用内部for循环来访问effectiveData但是我得到错误,说长度未定义。可以请有人帮我理解如何在这里访问数据..或者我做错了什么
for (var i =0; i < getTypes.length; i++) {
console.log(getTypes[i].toString());
for(var j=0; j< getTypes[i].effectivenessData; j++) {
console.log(getTypes[i].effectivenessData.[j]) // When I console log to check the data I get length undefined
}
}
看起来你试图在一个循环中打印类型'name
s而在另一个循环中打印effectivenessData
。您试图将getTypes
索引为数组,但它是一个不支持此类操作的函数。使用getTypes
检索数组,然后在数组上调用forEach
迭代其元素:
function Type(name, effectivenessData) {
this.name = name;
this.effectivenessData = effectivenessData;
}
var types = [
new Type("Fire", ["X", "X", "O", "", "O"]),
new Type("Water", ["O", "X", "X", "", ""]),
new Type("Grass", ["X", "O", "X", "", ""]),
new Type("Electric", ["", "O", "X", "X", ""]),
new Type("Ice", ["X", "X", "O", "", "X"])
];
var getTypes = function () {
return types.map(t => t.name);
};
getTypes().forEach(e => console.log(e));
types.forEach(e => console.log(e.effectivenessData));
// or, using a traditional loop:
for (let i = 0; i < types.length; i++) {
console.log(types[i]);
}
从这里可以看出,getTypes
是重命名的候选者(因为它确实返回了类型名称)或删除(因为它似乎没有添加太多的代码)。
你可以使用这样的东西循环:
function Type(name, effectivenessData) {
this.name = name;
this.effectivenessData = effectivenessData;
}
var types = [
new Type("Fire", ["X", "X", "O", "", "O"]),
new Type("Water", ["O", "X", "X", "", ""]),
new Type("Grass", ["X", "O", "X", "", ""]),
new Type("Electric", ["", "O", "X", "X", ""]),
new Type("Ice", ["X", "X", "O", "", "X"])
];
for(var i = 0; i < types.length; i++){
console.log(types[i].effectivenessData)
};
必须调用getTypes
,例如getTypes()
,其返回值应存储在var
中,以便迭代代码更清晰。
你应该使用getTypes()[i]
而不是getTypes[i]
,因为它是一个函数。