Javascript 阵列拼接产生意外结果

Javascript 阵列拼接产生意外结果,javascript,arrays,Javascript,Arrays,试着去理解 deleteCount:一个整数,指示要删除的旧数组元素数 嗯。看起来很简单。我要删除阵列中的最后4个对象。我希望这和元素一样 arr.splice(<start>, deleteCount<how-many-to-remove>): // {0 - 8} is an example of object position let obArr = [{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}] // Start from

试着去理解

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

嗯。看起来很简单。我要删除阵列中的最后4个对象。我希望这和元素一样

arr.splice(<start>, deleteCount<how-many-to-remove>):


// {0 - 8} is an example of object position
let obArr = [{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}]

// Start from the last and remove four:
obArr.splice(-1, 4)

console.log(obArr) // not expected.

console.log(obArr) // expected: [{0}, {1}, {2}, {3}]
arr.splice(,deleteCount):
//{0-8}是对象位置的一个示例
设obArr=[{0}、{1}、{2}、{3}、{4}、{5}、{6}、{7}]
//从最后一个开始,删除四个:
obArr.拼接(-1,4)
console.log(obArr)//不应为空。
log(obArr)//应为:[{0},{1},{2},{3}]

您的代码从最后一项开始,并尝试删除最后一项后的四个值。但在最后一项之后没有四个值。如果要从阵列中较早的结束开始位置删除四个:

让obArr=[0,1,2,3,4,5,6,7]
//从最后四个开始,删除四个:
obArr.拼接(-4,4)

console.log(obArr)
您的代码从最后一项开始,并尝试删除最后一项之后的四个值。但在最后一项之后没有四个值。如果要从阵列中较早的结束开始位置删除四个:

让obArr=[0,1,2,3,4,5,6,7]
//从最后四个开始,删除四个:
obArr.拼接(-4,4)

log(obArr)
根本不要使用拼接,这被认为是一种不好的做法。改为使用array.slice,因为它不是python,所以-1在slice中也不起作用。你想添加另一种方法而不是拼接吗?@Zydnar为什么说
-1在slice中不起作用?@MarkMeyer我假设
-1
表示“最后一个”作为indexOf?@MarkMeyer这不是我的意思,它只是以同样的方式工作,但是它不会改变obArr,所以这不是OP想要的。根本不要使用拼接,这被认为是一种不好的做法。改为使用array.slice,因为它不是python,所以-1在slice中也不起作用。你想添加另一种方法而不是拼接吗?@Zydnar为什么说
-1在slice中不起作用?@MarkMeyer我假设
-1
表示“最后一个”作为indexOf?@MarkMeyer这不是我的意思,它只是以同样的方式工作,但它不会改变obArr,所以这不是OP想要的。可读性现在可以理解为“从最后4个开始,删除4个”。许多感谢现在可以理解为“从最后四个开始,去掉四个”。非常感谢