【技術之瞳】部分錯誤答案

  1. 請填入內容,使得數組從小到大排序。 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 的值。

個人觀點測試結果
生效
在這裏插入圖片描述

  1. 刪除給定數組中的第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]
  • 根據書中答案測試結果顯示與答案不符

個人觀點
就給出的固定句式中去填空,我暫時想不到能夠解決的方案

個人觀點測試結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章