javascript indexOf总是返回-1
javascript indexOf always returning -1
制作(跛脚)游戏,我想检查所选方块是否包含怪物,但我的indexOf一直返回-1。下面的相关代码。
初始化:
var monsters = [];
var monsterPositions = [2,8,13,15,22];
var player = { "currentPosition": 0 };
for ( var i in monsterPositions ) {
monsters[i] = new createMonster("monster",monsterPositions[i],1); }
function createMonster(name,startingPoint,level) {
this.currentPosition = startingPoint; }
<td>
onclick:触发的功能
function processClick(trigger){
console.log( trigger.id + " " + monsterPositions );
if ( monsterPositions.indexOf(trigger.id) >= 0 ){
if ( !fight( findMonster( parseInt( trigger.id ) ) ) ){
return;
}
}
if ( gameOn ) move( parseInt( trigger.id ) );
}
页面总是直接进入move()
,即使它是一个怪物点,这里是console.log()
结果:
1 2,8,13,15,22 adventure.js (line 79)
2 2,8,13,15,22 adventure.js (line 79)
7 2,8,13,15,22 adventure.js (line 79)
8 2,8,13,15,22 adventure.js (line 79)
13 2,8,13,15,22 adventure.js (line 79)
18 2,8,13,15,22 adventure.js (line 79)
23 2,8,13,15,22 adventure.js (line 79)
22 2,8,13,15,22 adventure.js (line 79)
21 2,8,13,15,22 adventure.js (line 79)
20 2,8,13,15,22 adventure.js (line 79)
15 2,8,13,15,22 adventure.js (line 79)
(如果以上代码还不够,请链接到这里),我需要帮助。(当然,我为什么会在这里)
trigger.id
可能返回一个字符串,其中数组中充满了数字。
这个jsfiddle展示了它在操作中的作用,以及它如何使用数字以及如何使用parseInt()
将字符串ID转换为数字。
尝试这个
if ( monsterPositions.indexOf(Number(trigger.id)) >== 0 )
相关文章:
- 为什么空数组上的 indexOf 不返回 -1
- 为什么indexOf()在值存在时仍然返回-1
- 如何使用字符串的 indexOf 返回的值
- indexof 为相同的输入返回 -1 和 7
- 返回未捕获类型错误的 Javascript:无法调用未定义的方法 'indexOf'
- jQuery .each 返回 TypeError: 无法调用未定义的方法 'indexOf'
- 测试 indexOf 返回值的最佳做法
- javascript indexOf总是返回-1
- ValueIterator.toArray().indexOf()返回意外结果
- indexOf为数组中存在的值返回-1
- Javascript函数indexOf返回不正确的结果
- indexOf对于document.location始终返回true
- 为什么IndexOf返回-1 ?
- google sheets string.indexOf('string')没有正确返回
- 字符串indexOf总是返回-1
- indexOf返回-1,为什么?
- 数组返回indexOf而不是模式计数
- 返回多个indexOf
- 替换javascript对象中的字段?对于splice和push, splice的indexOf返回-1值
- indexOf()函数总是返回零,即使有相同的字符串