1. 程式人生 > 其它 >2016.01.07 HTML5真題練習

2016.01.07 HTML5真題練習

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>