一、js數(shù)組slice函數(shù)
js數(shù)組slice函數(shù)被用于從一個(gè)數(shù)組中返回一個(gè)選定的元素序列,生成一個(gè)新的數(shù)組對(duì)象。
語(yǔ)法如下:
array.slice(start, end)
其中,參數(shù)start是必須的,end是可選的。start指定從何處開(kāi)始選?。ò瑂tart所在元素),end(可選)為截止處(不包含)。
示例代碼:
var fruits = ['apple', 'banana', 'mango', 'orange', 'pineapple'];
var citrus = fruits.slice(1,3); //截取數(shù)組從索引1開(kāi)始到索引3的元素,不包括索引3的元素
console.log(citrus); //輸出:["banana", "mango"]
二、Js數(shù)組排序
在使用slice之前,可以對(duì)數(shù)組進(jìn)行排序以提高效率。js提供了sort()函數(shù)進(jìn)行排序操作。sort()函數(shù)默認(rèn)將元素轉(zhuǎn)換為字符串,并在Unicode位點(diǎn)順序下進(jìn)行排序??梢跃帉?xiě)自定義函數(shù)用作sort()的參數(shù)來(lái)控制排序表現(xiàn)。排序完成后使用slice()來(lái)提取想要的元素。
示例代碼:
var point = [40, 100, 1, 5, 25, 10];
point.sort(function(a, b){return a-b}); //數(shù)字排序后生成一個(gè)新數(shù)組
var newpoint = point.slice(1,3); //提取排序后的第2、3兩個(gè)元素
console.log(newpoint); //輸出:[5, 10]
三、js數(shù)組slice原理
js數(shù)組slice()的原理是從原先的數(shù)組中提取出需要的部分,生成一個(gè)新的數(shù)組,原數(shù)組并不會(huì)發(fā)生任何改變。slice方法返回的新數(shù)組可以存儲(chǔ)在一個(gè)變量中并作為一個(gè)數(shù)組使用,這有時(shí)可以使代碼更整潔易讀。
示例代碼:
var nums = [1,2,3,4,5];
var newNums = nums.slice(2,4);
console.log(newNums); //輸出:[3, 4]
console.log(nums); //輸出:[1, 2, 3, 4, 5]
四、js數(shù)組
在JavaScript中,數(shù)組是一種特殊的對(duì)象,用于存儲(chǔ)多個(gè)元素。js數(shù)組中的每個(gè)元素可以是任何類(lèi)型的數(shù)據(jù)(數(shù)字,字符串甚至是另一個(gè)數(shù)組)。
示例代碼:
var myArray = ['蘋(píng)果', '香蕉', '橙子', 1, 2, 3];
console.log(myArray); //輸出:["蘋(píng)果", "香蕉", "橙子", 1, 2, 3]
五、js數(shù)組slice方法
js數(shù)組slice()方法用于從已有的數(shù)組中返回選定的元素。如果沒(méi)有指定第二個(gè)參數(shù),則選取從起始索引到數(shù)組結(jié)尾的所有元素。
示例代碼:
var fruits = ['蘋(píng)果', '香蕉', '橙子', '芒果', '梨子'];
var citrus = fruits.slice(1);
console.log(citrus); //輸出:["香蕉", "橙子", "芒果", "梨子"]
六、js數(shù)組slice和splice
js數(shù)組slice()和splice()是Array.prototype上的兩個(gè)方法。它們都可以從數(shù)組中提取元素,但有所不同。slice()返回一個(gè)新數(shù)組,而splice()刪除、替換或插入一個(gè)或多個(gè)元素,并返回原數(shù)組。
示例代碼:
var myArray = ['早餐', '午餐', '晚餐', '夜宵'];
var slicedArray = myArray.slice(1,3); //slice()方法從索引1到2返回引用
console.log(myArray); //輸出:["早餐", "午餐", "晚餐", "夜宵"]
console.log(slicedArray); //輸出:["午餐", "晚餐"]
var splicedArray = myArray.splice(1, 2); //刪除從索引1開(kāi)始的2個(gè)元素,并返回被刪除元素的數(shù)組
console.log(myArray); //輸出:["早餐", "夜宵"]
console.log(splicedArray); //輸出:["午餐", "晚餐"]
七、js數(shù)組slice方法時(shí)間復(fù)雜度
時(shí)間復(fù)雜度是算法的一個(gè)性質(zhì),衡量的是執(zhí)行程序所需的計(jì)算工作量。對(duì)于js數(shù)組的slice()方法,時(shí)間復(fù)雜度為O(n),其中n是需要返回的元素個(gè)數(shù)。
八、js數(shù)組排序
在JavaScript中,可以使用sort()方法對(duì)數(shù)組進(jìn)行排序。排序操作可以用來(lái)提高對(duì)數(shù)組的遍歷或查找操作的效率。
九、js數(shù)組方法
在JavaScript中,還有其他許多有用的數(shù)組方法,例如push()、pop()、shift()、unshift()、indexOf()和lastIndexOf()。
push()向數(shù)組末尾添加一個(gè)或多個(gè)元素。
pop()從數(shù)組末尾刪除一個(gè)元素。
shift()從數(shù)組頭部刪除一個(gè)元素。
unshift()向數(shù)組頭部添加一個(gè)或多個(gè)元素。
indexOf()查找一個(gè)指定元素在數(shù)組中第一次出現(xiàn)的位置。
lastIndexOf()查找一個(gè)指定元素在數(shù)組中最后一次出現(xiàn)的位置。
示例代碼:
var myArray = ['蘋(píng)果', '香蕉', '橙子'];
myArray.push('梨子');
console.log(myArray); //輸出:["蘋(píng)果", "香蕉", "橙子", "梨子"]
myArray.pop();
console.log(myArray); //輸出:["蘋(píng)果", "香蕉", "橙子"]
myArray.shift();
console.log(myArray); // 輸出:["香蕉", "橙子"]
myArray.unshift('西瓜');
console.log(myArray); //輸出:["西瓜", "香蕉", "橙子"]
console.log(myArray.indexOf('香蕉')); //輸出:1
console.log(myArray.lastIndexOf('橙子')); //輸出:2