JavaScript拼接无法正常工作
javascript splice don't work properly
我想从数组中删除一个元素,但是拼接方法从星形索引中删除所有元素,直到数组的末尾。
我有这个代码:
function basketItemRemove(obj, id) {
...
if (id == 0)
tempBasketList.splice(id, id + 1);
else
tempBasketList.splice(id, id);
...
}
我检查 id 0,因为拼接不会使用索引 0 删除。然后splice(id, id);
只能正确处理数组的第二个元素,但如果元素是第三个或更高,那么它会删除所有元素,直到数组的末尾。
要splice
的第二个参数是要删除多少元素,而不是停止删除它们的点。如果要删除一个元素,请使用1
:
tempBasketList.splice(id, 1);
我检查id 0,因为拼接不会用索引0删除
确实如此,但如果这是您为第二个参数给出的内容,则不会,因为它意味着删除零项。
splice
的签名(来自上面的链接)解释说:
splice(start, deleteCount [ , item1 [ , item2 [ , … ] ] ] )
-
start
:从哪里开始做事(指数) -
deleteCount
:在该位置删除多少 -
item1
,item2
,item3
: 要在该位置添加的可选项目(删除后,如果deleteCount > 0
)
splice
的语法是:
array.splice(index , howMany[, element1[, ...[, elementN]]])
这意味着,如果您只需要删除一个元素,则第二个参数应1
:
tempBasketList.splice(id, 1);
我将创建一个原型以使事情变得更加容易,
Array.prototype.delete = function (obj) {
var index = this.indexOf(obj);// Get the index of object
this.splice(index, 1);// delete it
};
然后
tempBasketList.remove(obj)
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- 最大高度转换不;不工作,工作缓慢
- Gulp-rev:不是第一次工作,而是在第一次工作之后工作
- JQuery - Ajax: encodeUriComponent不工作(EncodeUri工作)