【发布时间】:2019-09-12 06:36:16
【问题描述】:
我有一个函数,它遍历对象数组并返回一个模板文字,该模板文字获取一个属性值(名称)以及一个作为函数方法的属性值(这是 .move / 他们将采取多少步) .move 方法使用 math.random 选择随机数的步骤并返回该值。但是,在某些对象中,移动属性被定义为整数,例如 1 或 2,而不是随机数。
有没有办法更改我的fitnessTest 函数,使其同时接受.move() 和.move?
我尝试在我的 while 语句中使用 if else 语句
while (steps <= 20) {
if (typeof arrayObject == function) {
steps += arrayObject[i].move();
turns++;
} else
steps += arrayObject[i].move;
turns++;
它返回具有正确定义为整数的 .move 值的对象,但不返回具有 .move() 的对象的随机数。
function fitnessTest(arrayObject){
let turnsArray = [];
for (i = 0; i < arrayObject.length; i++){
let steps = 0;
let turns = 0;
while (steps <= 20){
steps += arrayObject[i].move();
turns++;
} turnsArray.push(`${arrayObject[i].name} took ${turns} turns to take 20 steps.` );
} return turnsArray;
}
现在,该函数将遍历具有.move() 作为生成随机数并返回正确字符串的函数的对象数组,但是将 .move 设置为整数的对象只会给我一个
arrayObject[i].move的类型错误不是函数
【问题讨论】:
-
typeof arrayObject == function应该是typeof arrayObject[i].move == function -
typeof arrayObject会给你arrayObject的类型...arrayObject[i].move显然与arrayObject的类型不同
标签: javascript object methods