【问题标题】:array indexof() not working for dynamic value数组 indexof() 不适用于动态值
【发布时间】:2017-11-24 07:58:07
【问题描述】:

数组indexof() 不适用于动态值。

如果像这样使用:

var arr ='1,2,3,4,';
del_row = arr.slice(0,-1);
del_array = del_row.split(',');
var a = del_array.indexOf('2');

它有效,但我使用的是:

for(var i='1';i<=rowcnt;i++) {
    var del_row = $('#hid_delrow').val();
    if(del_row != ''){
        del_row = del_row.slice(0,-1);
        del_array = del_row.split(',');
        del_length = del_array.length;
        var a = del_array.indexOf(i);
        //var a = $.inArray(i,del_array)
        if(a != '-1'){
            continue;
        }
    }
 }

它不工作,我也尝试:

del_array.indexOf(parseInt(j, 10));

$.inArray(j,del_array);

all 返回值为 -1 。帮帮我。

【问题讨论】:

  • 为我工作....
  • @Mr.Alien,这里也一样..
  • 如何查看?
  • @Madhan 使用控制台?输出a的值

标签: javascript jquery


【解决方案1】:

del_array 的值是一个字符串数组。

indexOf 将在您传递字符串时起作用 - indexOf('2') - 但在传递 int indexOf(i) 时不起作用。您将其声明为 var i = '1' 的事实不足以使其成为字符串,因为您随后会继续对其进行整数运算 (i++)。

您需要将整数设为字符串:

var a = del_array.indexOf(i.toString());

... 或将del_array 设为整数列表:

del_array = del_array.map(function(x) { return parseInt(x); });
var a = del_array.indexOf(i);

【讨论】:

  • 感谢兄弟,完美运行
【解决方案2】:

indexof() 的简单例子是:--

<script>
var arr = ['a', 'b', 'c', '123', 'xyz'];
console.log("Array index"+" "+arr.indexOf('b')); 
alert("Array index"+" "+arr.indexOf('b'));
</script>

【讨论】:

    猜你喜欢
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 2012-12-16
    • 1970-01-01
    • 2020-01-16
    相关资源
    最近更新 更多