Vue中的slice函數(shù)用于從數(shù)組中截取指定位置的元素,返回一個新數(shù)組。
array.slice(start, end)
其中,start表示開始截取的位置,end表示結(jié)束截取的位置。若end不傳參則默認(rèn)從start到數(shù)組末端。
slice方法不改變原數(shù)組。
const arr = [1, 2, 3, 4, 5];
const slicedArr = arr.slice(1, 3); // [2, 3]
console.log(arr); // [1, 2, 3, 4, 5]
console.log(slicedArr); // [2, 3]
需要注意的是,slice方法截取的是一個新數(shù)組,新數(shù)組與原數(shù)組之間互不影響。但是,如果原數(shù)組包含對象,則新數(shù)組中的對象仍然是原對象的引用。
const arr = [{id: 1}, {id: 2}, {id: 3}];
const slicedArr = arr.slice(1, 3);
console.log(arr[1] === slicedArr[0]); // true
由于對象只是引用傳遞,所以新數(shù)組中的對象實(shí)際上是原數(shù)組中的同一個對象。
最后,若想將類數(shù)組轉(zhuǎn)換成數(shù)組,可以使用slice函數(shù)。
const args = Array.prototype.slice.call(arguments);
// 或者:const args = [].slice.call(arguments);
上述代碼中,arguments是個類數(shù)組對象,調(diào)用slice方法并借用Array.prototype上的方法,將其轉(zhuǎn)換成數(shù)組。