【问题标题】:Get array index by value按值获取数组索引
【发布时间】:2014-08-29 16:52:38
【问题描述】:

我正在尝试按值获取数组索引。

我有这个代码:

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,因此,找不到它。如果将 squareId 替换为 indeOf 中的数字,则效果很好,但如果我使用变量,则不起作用。

谁能帮帮我?

【问题讨论】:

    标签: javascript arrays angularjs


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      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

      【讨论】:

      猜你喜欢
      • 2016-05-06
      • 2023-03-24
      • 1970-01-01
      • 2021-05-28
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      • 2016-03-20
      • 2021-12-10
      相关资源
      最近更新 更多