js splice()

思考:如何实现排序后,将排序位置修改为拖拽之后的位置?

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

拖拽前
拖拽后
关键代码:

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>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容