Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Console.log输出错误结果[奇怪的行为]_Javascript - Fatal编程技术网

Javascript Console.log输出错误结果[奇怪的行为]

Javascript Console.log输出错误结果[奇怪的行为],javascript,Javascript,我有一个字符串,其中我使用split(“”)转换为数组。我只想使用splice()删除数组的最后一项 然而,当我在删除最后一项后输出数组时,我得到了这个奇怪的结果。当我不在Chrome控制台中使用console.log()时,它输出良好。为什么会这样 (在控制台中尝试此代码。输出良好) (这给了我错误的结果。[输出数组的最后一项。]) let strings='AA11111'; 设splits=strings.split(“”); 拆分。拼接(0,拆分长度-1); 控制台日志(拆分)用于从数

我有一个字符串,其中我使用
split(“”)
转换为数组。我只想使用
splice()
删除数组的最后一项

然而,当我在删除最后一项后输出数组时,我得到了这个奇怪的结果。当我不在Chrome控制台中使用
console.log()时,它输出良好。为什么会这样

(在控制台中尝试此代码。输出良好)

(这给了我错误的结果。[输出数组的最后一项。])

let strings='AA11111';
设splits=strings.split(“”);
拆分。拼接(0,拆分长度-1);
控制台日志(拆分)用于从数组中删除元素并更改原始数组的内容,第一个参数是需要删除元素的索引,下一个参数是要删除的元素数,因此,如果需要删除最后一个元素,则需要从arr.length-1开始,删除计数应为1,请参见下面的示例

let strings='AA11111';
设splits=strings.split(“”);
分裂拼接(分裂长度-1,1);

控制台日志(拆分)这个输出对我来说很有意义

语法

array.splice(start[,deleteCount[,item1[,item2[,…]])

参数

开始

开始更改数组的索引(原点为0)。如果更大 超过数组长度时,实际起始索引将设置为 数组的长度。如果为负数,则将从 数组的结尾(原点为-1),如果为绝对值,则将设置为0 值大于数组的长度

删除计数可选

一个整数,指示要删除的旧数组元素数

从索引0('A')开始,删除长度为1的元素(六个元素)。剩下的是最后一个元素。('1').

如果要删除最后一个元素,我将执行以下操作:

let strings='AA11111';
设splits=strings.split(“”);
分裂。拼接(-1,1)//从最后一个元素开始,删除一个元素。

控制台日志(拆分)这里发生的情况是,除最后一个元素外的所有元素都被删除。这就是为什么在您使用console.log时只需1个元素就可以修改数组的原因。在第一种情况下,它将返回已删除的项目

splits.splice(0, splits.length - 1);

第一个参数是要删除的元素的起始位置,第二个参数是元素的数量,这里发生的是除最后一个元素之外的所有元素都被删除。这就是为什么在您使用console.log时只需1个元素就可以修改数组的原因。在第一种情况下,它返回已删除的项目

拆分拼接(0,拆分长度-1)

当您使用console.log时,修改后的数组仅包含1个元素。在第一种情况下,它将返回已删除的项。
修改它所调用的数组。
拆分.splice(-1)
或只
拆分.pop()
删除数组的最后一项很好的解释!感谢您的反馈,但为什么它不使用console.log()(在我的代码中)就可以工作呢?因为splice函数将删除的元素作为新数组返回。无论何时在控制台中调用函数,都会显示该函数的
返回值。都在文档中@connexo Gotcha!我明白了!谢谢。当我给代码一个变量并输出该变量时,它也可以正常工作。
splits.splice(0, splits.length - 1);