我试图按值获取数组索引。
我有以下代码:
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/