彻底搞明白slice、splice、splite三者之间的区别与用法
slice()方法:
-
slice() 方法可从已有的数组中返回选定的元素。
-
slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
-
注意: slice() 方法不会改变原始数组
-
用法:
array.slice(start, end)
start:可选。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。 -
案例
var fruits = [“Banana”, “Orange”, “Lemon”, “Apple”, “Mango”];
var myBest = fruits.slice(1,4);
console.log(myBest); // 结果为 [ “Orange”, “Lemon”, “Apple”]
splice() 方法:
-
splice() 方法用于插入、删除或替换数组的元素。
-
注意:这种方法会改变原始数组!。
-
语法:
array.splice(index,howmany,item1,…,itemX)
index 必需。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany 必需。规定应该删除多少元素。必须是数字,但可以是 “0”。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item1, …, itemX 可选。要添加到数组的新元素 -
案例
var fruits = [“Banana”, “Orange”, “Lemon”, “Apple”, “Mango”];
fruits.splice(1, 2, "Peach ");
console.log(fruits); // [“Banana”, "Peach ", “Apple”, “Mango”]
移动端类九宫格切换轮播数据算法
<script>
export default {
data() {
return {
arr: [0, 1, 2, 3, 4],
limit: 2,
empty: []
}
},
onLoad() {
let limit = Math.ceil(this.arr.length / this.limit)
for (let i = 0 ; i < limit; i++) {
console.log(this.arr)
this.empty.push(this.arr.splice(0, this.limit))
}
},
methods: {
}
}
</script>
split()方法:
-
split() 方法用于把一个字符串分割成字符串数组。
-
提示: 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
-
注意: split() 方法不改变原始字符串。
-
用法:
string.split(separator,limit)
separator 可选。字符串或正则表达式,从该参数指定的地方分割 string Object。
limit 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 -
案例
var str=“How are you doing today ?”;
var n=str.split(" ");
console.log(n); // [“How”, “are”, “you”, “doing”, “today”, “?”]