按值获取数组索引

时间:2014-08-29 08:41:04

标签: javascript arrays angularjs

我试图按值获取数组索引。

我有这段代码:

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,它可以完美地运行,但如果我使用变量,它就不起作用。

任何可以帮助我的人?​​

2 个答案:

答案 0 :(得分:2)

您正在使用1到160之间的数字初始化数组值,因此squares.indexOf(1)将返回0。

您要做的是使用元素的实际ID初始化数组。

答案 1 :(得分:1)

See Example Fiddle

这是因为变量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);

请参阅similar question