JavaScript Array.shift不工作
我一直在编写一个系统,该系统应该删除数组的第一个索引。控制台没有将数组从(即)“1,2,3,4,5”更改为“2,3,4,5”,而是给出一个错误:“未捕获类型错误:num.splice不是函数”。我听说num.splice不是函数,它是删除数组的第一个索引值的操作(或其他操作)。我很困惑,当我使用来自的示例代码时,控制台中没有输出错误。我不明白为什么会这样 (我已经给出了完整的代码,以防与语法问题有关)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
函数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()方法在数组中添加/删除项,并返回删除的项
正如您所看到的,varnum
是字符串(而不是数组),具有iddemoin
元素的值
因为您正在尝试拼接字符串而不是数组。错误将显示在控制台中
解决方案:
将split
的值存储在数组中(它可以是num
本身),然后将splite
存储到该数组中
num = num.split("");
...
num.splice(0,1);
num
不是数组。它是字符串。如果要调用splice,首先必须将其转换为数组。可以使用array.from(num)
执行此操作。
num = num.split("");
...
num.splice(0,1);