本篇文章来给大家介绍一下 JavaScript 截取数组的两种方法: slice(),splice(). 有一定的参考价值, 有需要的朋友可以参考一下, 希望对大家有所帮助.
slice()
返回一个索引和另一个索引之间的数据 (不改变原数组),slice(start,end) 有两个参数(start 必需, end 选填), 都是索引, 返回值不包括 end
用法和截取字符串一样
- var heros=["李白",'蔡文姬','韩信','赵云','甄姬','阿珂','貂蝉','妲己'];
- console.log(heros.slice(1,4))// [ "蔡文姬", "韩信", "赵云" ]开始索引为 1 结束索引为 4(不包括 4)
- console.log(heros)// 不改变原数组 [ "李白", "蔡文姬", "韩信", "赵云", "甄姬", "阿珂", "貂蝉", "妲己" ]
若开始索引为负数, 则将该值加上数组长度后作为开始索引, 如果此时还是负数, 开始索引为 0.
- var heros=["李白",'蔡文姬','韩信','赵云','甄姬','阿珂','貂蝉','妲己'];
- console.log(heros.slice(-6,4))// [ "韩信", "赵云" ]开始索引为 2 结束索引为 4(不包括 4)
- console.log(heros.slice(-10,4))// [ "李白", "蔡文姬", "韩信", "赵云" ]开始索引为 0 结束索引为 4(不包括 4)
如果开始索引大于或等于数组的长度或大于或等于结束索引, 则 slice()返回一个空数组.
- var heros=["李白",'蔡文姬','韩信','赵云','甄姬','阿珂','貂蝉','妲己'];
- console.log(heros.slice(8,4))// [ ]
- console.log(heros.slice(10,4))// [ ]
- console.log(heros.slice(4,4)) //[ ]
- console.log(heros.slice(5,4)) //[ ]
如果结束索引省略, 截取到数组的末尾. 如果为负, 数组长度加上该值即为结束索引, 如果此时还为负数, 返回空数组
- var heros=["李白",'蔡文姬','韩信','赵云','甄姬','阿珂','貂蝉','妲己'];
- console.log(heros.slice(1))// [ "蔡文姬", "韩信", "赵云", "甄姬", "阿珂", "貂蝉", "妲己" ]
- console.log(heros.slice(1,-4))// [ "蔡文姬", "韩信", "赵云" ] 开始索引 1 结束索引 8+(-4)=4
- console.log(heros.slice(1,-10)) //[ ] 开始索引 1 结束索引 8+(-10)=-2
- splice()
用来添加或者删除数组的数据, 只返回被删除的数据, 类型为数组(改变原数组)
- var heros=["李白",'蔡文姬','韩信','赵云','甄姬','阿珂','貂蝉','妲己'];
- // 当只有索引, 从当前索引截取到最后
- console.log(heros.splice(1))// [ "蔡文姬", "韩信", "赵云", "甄姬", "阿珂", "貂蝉", "妲己" ]
- console.log(heros) //['李白']
当第二个参数 (删除数量) 小于 0 视为 0
- var heros=["李白",'蔡文姬','韩信','赵云','甄姬','阿珂','貂蝉','妲己'];
- console.log(heros.splice(1,-10))//[]
- console.log(heros) // [ "李白", "蔡文姬", "韩信", "赵云", "甄姬", "阿珂", "貂蝉", "妲己" ]
删除并添加
- var heros=["李白",'蔡文姬','韩信','赵云','甄姬','阿珂','貂蝉','妲己'];
- console.log(heros.splice(1,2,['扁鹊'],'孙膑'))//[ "蔡文姬", "韩信" ]
- console.log(heros) //[ "李白", [扁鹊], "孙膑", "赵云", "甄姬", "阿珂", "貂蝉", "妲己" ]
更多 web 前端 https://www.html.cn/ 知识, 请查阅 HTML 中文网 !!
来源: http://www.css88.com/web/javascript/17606.html