slice()
是 JavaScript 數組方法之一,用於從數組中創建一個新數組,包含原數組中的一部分元素,而不修改原始數組。它的語法如下:
begin
(可選):表示從原數組中開始提取元素的位置的索引。如果未指定 begin
,則從索引 0 處開始提取。如果 begin
是負數,它表示從數組末尾開始計數,例如 -1
表示數組的最後一個元素。end
(可選):表示在原數組的哪個索引處結束提取元素(但不包括該索引處的元素)。如果未指定 end
,slice()
會提取到數組的末尾。如果 end
是負數,它表示在數組末尾的索引位置。slice()
方法返回一個新數組,包含從原數組中提取的元素。原數組不會被修改。
Sort By
給定一個數組“arr”和一個函數“fn”,返回一個排序數組“sortedArr”。
Given an array arr
and a function fn
, return a sorted array sortedArr
.
您可以假設“fn”僅返回數字,並且這些數字決定“sortedArr”的排序順序。
You can assume fn
only returns numbers
and those numbers determine the sort order of sortedArr
.
sortedArray
必須按 fn
輸出升序排序。
sortedArray
must be sorted in ascending order by fn
output.
您可能會假設“fn”永遠不會重複給定數組的數字。
You may assume that fn
will never duplicate numbers for a given array.
根據函數 fn 的返回值對數組 arr 進行升序排序,並返回排序後的新數組。
arr.slice()
沒有傳遞任何參數時,將返回原始數組 arr 的淺拷貝(shallow copy),這是一種常用於復制數組的方法。
這意味著它會創建一個新數組,包含原數組中的所有元素,並將這些元素複製到新數組中,但不會影響原始數組。
.sort((a, b) => fn(a) - fn(b))
陣列的 sort 方法,該方法接受一個比較函數作為參數。
計算了fn(a) - fn(b)這兩個返回值的差值,這將成為排序的依據。
=> 如果差值為負數,則 a 應該排在 b 前面,
如果差值為正數,則 b 應該排在 a 前面,
如果差值為零,則它們保持相對順序不變。 最後,函數返回了排序後的新數組。