JavaScript数组.indexOf()未获取正确的索引

JavaScript数组.indexOf()未获取正确的索引,javascript,Javascript,我在本地存储器中有一个包含四个元素的数组 function rm(t) { // var l = localStorage.getItem("subje"); // hide element from html page document.getElementById(t).style.display = 'none'; var c = localStorage.getItem("class")

我在本地存储器中有一个包含四个元素的数组

   function rm(t)
   {   
           //   var l = localStorage.getItem("subje");
          // hide element from html page
          document.getElementById(t).style.display = 'none';
         var c = localStorage.getItem("class");
         var item = c+""+t;  // c is int and t is string
         var subj = localStorage.getItem("std-sub");
          var x = subj.indexOf(item);
           /*
          subj.splice(x,1);
           localStorage.setItem("final", subj);
            var k = localStorage.getItem("final");*/
           document.getElementById('show').innerHTML = x;
           }
当我执行函数时,显示x的值 29,17,7,0. 但是我给定的数组只有四个元素。
为什么?

getItem
总是返回字符串(或
null
)。因此<代码>主题索引(项目)将获取子字符串
在字符串
sub
中的位置。您应该将数组编码和解码为JSON,并将其存储在本地存储中