- 請填入內容,使得數組從小到大排序。 P130 習題4.17
var arr = [6, 2, 10, 5, 9, 5]; arr.sort(_______);
書中答案
function(a, b) {return a >= b ? 1 : 0;}
書中答案測試結果
發現並不生效
個人觀點
function(a, b) {return a >= b ? 1 : -1;}
如果調用該方法時沒有使用參數,將按字母順序對數組中的元素進行排序,說得更精確點,是按照字符編碼的順序進行排序。要實現這一點,首先應把數組的元素都轉換成字符串(如有必要),以便進行比較。
如果想按照其他標準進行排序,就需要提供比較函數,該函數要比較兩個值,然後返回一個用於說明這兩個值的相對順序的數字。比較函數應該具有兩個參數 a 和 b,其返回值如下:
- 若 a 小於 b,在排序後的數組中 a 應該出現在 b 之前,則返回一個小於 0 的值。
- 若 a 等於 b,則返回 0。
- 若 a 大於 b,則返回一個大於 0 的值。
個人觀點測試結果
生效
- 刪除給定數組中的第2項和第3項,並且在得到的新數組中的第2項後面添加一個新的值。
var arr1 = ['a', 'b', 'c', 'd','e']; var arr2 = arr1.___(___, ___, 'newvalue');
書中答案
arr1.splice (1, 2, 'newvalue')
書中答案測試結果
- 從索引爲1的元素開始刪除2個元素即刪除b和c,得到的新數組爲
[a, d, e]
- 在新數組的第2項後添加一個新的值,預期應得到
[a, d, newvalue, e]
- 根據書中答案測試結果顯示與答案不符
個人觀點
就給出的固定句式中去填空,我暫時想不到能夠解決的方案
個人觀點測試結果
無