2016.01.07 HTML5真題練習
阿新 • • 發佈:2022-05-04
HTML5學堂:每天一道題,強壯程式設計師!今日主要涉及01.06日,陣列操作題目的解答,以及一道涉及陣列拼接的題目。
HTML5真題【2016.01.06】答案解析
01.06日真題題目如下,最終輸出的結果是多少?
<script> var a = [33, 2, 111, 88, 121]; console.log(a.sort()); function ascending(a, b) { return a-b;} console.log(a.sort(ascending)); function descending(a, b) { return b-a;} console.log(a.sort(descending)); </script>
本題目的分別答案是:[111, 121, 2, 33, 88]、[2, 33, 88, 111, 121]、[121, 111, 88, 33, 2]。
答案解析:本題目主要涉及陣列元素的操作。
sort()方法將陣列中的元素排序並返回排序後的陣列。當不帶引數呼叫sort()時,陣列元素以字母表順序排序輸出,即上題中的第一個輸出語句輸出的結果。
為了按照其他的方式而非字母表的順序進行陣列的排序,必須給sort()方法傳遞一個函式。該函式決定了它的兩個引數在排序好的陣列中的先後順序。
所以,假設第一個引數要在前面,比較函式應該返回的是一個小於0的數值,如上題的ascending()函式,返回的是a-b的值,陣列按照升序輸出[2, 33, 88, 111, 121]。
假設第一個引數要在後面,比較函式應該返回的是一個大於0的數值,如上題的descending()函式,返回的是b-a的值,陣列按照降序輸出[121, 111, 88, 33, 2]。
相關知識連結:陣列與字串
HTML5真題【2016.01.07】題目
<script> var num = [1, 3, 5]; console.log(num.concat(7, 9)); console.log(num.concat([7, 9])); console.log(num.concat([7, 9], [11, 13])); console.log(num.concat(7, [9, [11, 13]])); </script>