JavaScript Array.shift不工作

JavaScript Array.shift不工作,javascript,html,arrays,Javascript,Html,Arrays,我一直在编写一个系统,该系统应该删除数组的第一个索引。控制台没有将数组从(即)“1,2,3,4,5”更改为“2,3,4,5”,而是给出一个错误:“未捕获类型错误:num.splice不是函数”。我听说num.splice不是函数,它是删除数组的第一个索引值的操作(或其他操作)。我很困惑,当我使用来自的示例代码时,控制台中没有输出错误。我不明白为什么会这样 (我已经给出了完整的代码,以防与语法问题有关) 函数dCrypt(){ var num=document.getElementById(“de

我一直在编写一个系统,该系统应该删除数组的第一个索引。控制台没有将数组从(即)“1,2,3,4,5”更改为“2,3,4,5”,而是给出一个错误:“未捕获类型错误:num.splice不是函数”。我听说num.splice不是函数,它是删除数组的第一个索引值的操作(或其他操作)。我很困惑,当我使用来自的示例代码时,控制台中没有输出错误。我不明白为什么会这样

(我已经给出了完整的代码,以防与语法问题有关)

函数dCrypt(){
var num=document.getElementById(“demoin”).value;//ex:a127
变量键=[“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;
数字分割(“”);
mod=num[0];
pre=键索引OF(mod);
接头数量(0,1);

对于(i=0;i当分割'num'时,必须重新分配它

num = num.split("");

请参考w3schools提供的链接:

splice()方法在数组中添加/删除项,并返回删除的项

正如您所看到的,var
num
是字符串(而不是数组),具有id
demoin
元素的值

因为您正在尝试拼接字符串而不是数组。错误将显示在控制台中

解决方案:

split
的值存储在数组中(它可以是
num
本身),然后将
splite
存储到该数组中

num = num.split("");
...
num.splice(0,1);

num
不是数组。它是字符串。如果要调用splice,首先必须将其转换为数组。可以使用
array.from(num)
执行此操作。
num = num.split("");
...
num.splice(0,1);