我试图按值获取数组索引。
我有这段代码:
var squares = new Array();
for (var i = 1; i <= 160; i++) {
squares.push(i);
}
angular.element('.click').click(function () {
var squareId = angular.element(this).attr('id');
var fisk = squares.indexOf(squareId);
console.log(fisk);
});
这只返回-1,因此无法找到它。如果用indeOf中的数字替换squareId,它可以完美地运行,但如果我使用变量,它就不起作用。
任何可以帮助我的人?
答案 0 :(得分:2)
您正在使用1到160之间的数字初始化数组值,因此squares.indexOf(1)将返回0。
您要做的是使用元素的实际ID初始化数组。
答案 1 :(得分:1)
这是因为变量squareId
可能返回一个字符串值。函数indexOf
找不到字符串,因为它在数组中有数字。
// string search
var squareId = '2';
var fisk = squares.indexOf(squareId);
console.log('This will not be found ' + fisk);
// number search
var squareId = Number('2');
var fisk = squares.indexOf(squareId);
console.log('This will be found ' + fisk);