2017-11-24 5 views
0

配列indexof()は動的値では機能しません。動的値の配列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);

すべては-1として値を返します。助けて。

+1

私の仕事.... –

+0

@ Mr.Alien、同じくここに.. –

+0

どうすれば確認できますか? – Madhan

答えて

2

del_arrayの値は文字列の配列です。

indexOfは、indexOf('2')の文字列を渡したときに機能しますが、intを渡したときには無効になりますindexOf(i)var i = '1'と宣言しても、文字列にするには不十分です。なぜなら、整数演算を行うためです(i++)。

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

...またはdel_array整数のリストを作る:あなたは、文字列、あなたの整数を作るためにどちらかの必要

IndexOfメソッドの

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

ありがとう、完璧に働いています – Madhan

0

簡単な例は、()です: -

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

関連する問題