js splice()

2019-04-28  本文已影响0人  2016_18点
思考:如何实现排序后,将排序位置修改为拖拽之后的位置?

例如:将“端口中断或不均处理”从第一个位置拖到第三个位置,怎么修改他们在数组中的位置

拖拽前 拖拽后
关键代码:

this.showItems.splice(newIndex, 0, this.showItems.splice(oldIndex, 1)[0])
this.showItems: ['端口中断或不均处理','自动登记硬故','执行命令']
oldIndex表示 '端口中断或不均处理'被拖拽前的位置
newIndex表示 '端口中断或不均处理'被拖拽后的位置

解析:

1、先执行 this.showItems.splice(oldIndex, 1)[0]:将oldIndex位置的数据删除并取出,oldIndex后面位置的数据会依次前移一位
2、再执行this.showItems.splice(newIndex, 0, xxx) :将被删除元素插入到新位置(xxx表示上面的被删除数据)

试一试 点击在w3c上试一下
<html>
<body>

<script type="text/javascript">

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"


document.write(arr + "<br />")
arr.splice(2,0,arr.splice(0,1))
document.write(arr)

</script>

</body>
</html>
上一篇 下一篇

猜你喜欢

热点阅读