从0到1:JavaScript快速上手第六章课后习题
一、单选题1.下面有一个数组,该数组中数值最小和数值最大的元素的下标分别是( )。
var arr=[3,9,1,12,36,50,21]
A.2, 5 B.3, 6 C.2, 6 D.3, 5
编程思路,先正序排序,然后再将排序结果倒叙。
其实就是想用sort函数和reserve函数
var arr=[3,9,1,12,36,50,21]
var up_arr = arr
up_arr.sort(function(a,b){
return a - b
})
document.write("排序后的数组:" + up_arr + "<br>")
document.write("最小值:" + up_arr[0] + "<br>")
up_arr.reverse()
document.write("reverse后得到最大值:" + up_arr[0] + "<br>" + "<hr>")
var down_arr = arr
down_arr.sort(function(a,b){
return b - a
})
document.write("排序后的数组:" + down_arr + "<br>")
document.write("最大值:" + up_arr[0] + "<br>" + "<hr>")
执行结果:
2.下面有一段JavaScript程序,最终得到的数组colors中的第1个元素是( )。
var colors=["red","green","blue"]; colors[1]="yellow";
A."red" B."green" C."yellow" D."blue"
var colors=["red","green","blue"];
colors[1]="yellow";
document.write(colors)//red,yellow,blue
5.下面有一段JavaScript代码,输出结果是( )。
var arr=[1,2,3,4,5]; var result=arr.slice(1,3); document.write(result);
A.1,2 B.2,3 C.3,4 D.1,2,3
解析:
js的数组下表是从0开始的,slice的值范围是前闭后开。[start,end)
slice(1,3),就表示从下标1开始到下标3结束,不包含下标3,所以答案是arr[1]和arr[2],答案就是B。
1.如果有一个字符串"Rome was not built in a day",请用程序统计该字符串中字符的个数,不允许使用字符串对象的length属性。
解析
编写代码
var str = "Rome was not built in a day"; document.write(str.length + "<br>") var str_arr = str.split(""); document.write(str_arr + "<br>" + "<hr>") document.write(str_arr.length)
输出结果:主要是借助了split函数和数组的length
27
R,o,m,e, ,w,a,s, ,n,o,t, ,b,u,i,l,t, ,i,n, ,a, ,d,a,y
27
2.给大家一个任意的字符串,如何实现把字符串中的字符顺序颠倒。如给你"abcde",你要得到"edcba"。
代码:
function my_reverse(str){
document.write("原始字符串:" + str + "<br>")
var str_arr = str.split("")
str_arr.reverse();
return str_arr.join("")
}
document.write("颠倒后的字符串:" + my_reverse("hello") + "<br>")
document.write("颠倒后的字符串:" + my_reverse("world") + "<br>")
原始字符串:hello
颠倒后的字符串:olleh
原始字符串:world
颠倒后的字符串:dlrow