我一直在编写一个应该删除数组第一个索引的系统。而不是从(即)1,2,3,4,5和#34;到" 2,3,4,5"控制台出错:"未捕获TypeError:num.splice不是函数"。我听说num.splice 不是一个函数,它是一个删除数组的第一个索引值的操作(或其他东西)。我很困惑,当我使用w3Schools中的示例代码时,控制台中没有输出错误。我不明白为什么会这样。
(我已经提供了整个代码以防万一与语法问题有关)
function dCrypt() {
var num = document.getElementById("demoin").value; // ex: a127
var key = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
var mod = 0;
var out = 0;
var prep = 0;
var pre = 0;
num.split("");
mod = num[0];
pre = key.indexOf(mod);
num.splice(0,1);
for (i=0;i <= pre;i++) {
prep += 26;
}
out = Math.floor(num + pre);
document.getElementById("demoout").innerHTML = out;
}
提前致谢!
答案 0 :(得分:6)
当你分开&#39; num&#39;你必须重新分配它
num = num.split("");
答案 1 :(得分:0)
参考w3schools的链接:
splice()方法在中添加/删除项目,并返回已删除的项目。
正如您所看到的,var num
是字符串(而不是数组),并且具有标识为demoin
的元素的值。
因为你试图拼接一个字符串而不是一个数组。该错误显示在控制台中。
<强>解决方案:强>
将split
的值存储在数组中(可能是num
本身),然后splice
存储该数组。
num = num.split("");
...
num.splice(0,1);