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

我有以下代码:

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,则效果很好,但如果使用变量,则不起作用。

有人可以帮助我吗?

最佳答案

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

关于javascript - 按值获取数组索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25564665/

10-14 20:13
查看更多