js练习题第18天 答案及解析

本篇文章是js基础练习题第十八天的答案及解析部分,纯题目部分请移步js基础练习题 第18天

正文

1.

1
2
3
4
5
var x = 1; 
function f(n) {
n = n + 1;
}
y = f(x);
上述代码运行后,y的值为___________。

答案:undefined


2.以下代码运行后,arr的结果为___________,arr2的结果为___________。
1
2
3
var arr = [1, 2]; 
var arr2 = arr.concat();
arr2.push(arr.splice(1, 1, 3));

答案:[1, 3][1, 2, [2]]

splice()方法会改变原数组且返回值为所有删除的元素组成的数组。


3.找出数组[-1, -2, 1, 10, 4, 5, 8]中的最大值,至少写出两种方法。

代码如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 方法1:利用Math.max()
var arr = [-1, -2, 1, 10, 4, 5, 8];
Math.max.apply(null, arr);

// 方法2:先降序排序,然后取出第一个值,即为最大值
var arr = [-1, -2, 1, 10, 4, 5, 8];
arr.sort((a, b) => b - a);
arr[0];

// 方法3:利用for循环取出最大值
var arr = [-1, -2, 1, 10, 4, 5, 8];
var max = -Infinity;
for (var i = 0; i < arr.length; i++) {
if(max < arr[i]){
max = arr[i];
}
}

4.封装一个函数,将字符串"js-exercise-day-eighteen"从第二个单词开始首字母大写,然后拼成字符串 "jsExerciseDayEighteen",并返回。(注意:封装成一个函数)

代码如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 方法1:数组和字符串的来回转换
function transToCamel(str) {
var str_arr = str.split("-");
for (var i = 1; i < str_arr.length; i++) {
str_arr[i] = str_arr[i].slice(0, 1).toUpperCase() + str_arr[i].slice(1);
}
return str_arr.join("");
}
transToCamel("js-exercise-day-eighteen");

// 方法2:利用正则表达式的相关知识
function transToCamel(str) {
return str.replace(/-(\w)/g, function($0, $1) {
return $1.toUpperCase();
})
}
transToCamel("js-exercise-day-eighteen");

5.用js实现类似下列Python代码所呈现出的效果,list(range(1,101))[::2]

答案:如下方代码段所示

1
2
3
4
var arr_find_odd = new Array(100)
.fill("")
.map((item, index) => index + 1)
.filter((item) => item % 2 == 1);

上述Python代码段的意思是创建一个从1到100的列表,并筛选出其中的奇数值。


6.
1
var str = "It's humorous,you'll feel heart-broken!";
str.split("").reverse().join("")的结果是___________。

答案:"!nekorb-traeh leef ll'uoy,suoromuh s'tI"


7.利用正则表达式的相关知识实现内置的trim()方法。

答案:如下方代码段所示

1
2
3
function myTrim(str) {
return str.replace(/(^\s+)|(\s+$)/g, "");
}

说明

  1. 题目中出现的JS指的是采用ECMAScript 2015及之后标准的JavaScript
  1. 答案中,若有错误和需完善的地方,可在下方留言反馈哈~~

  2. 查看纯习题版,请点击js基础练习题 第18天

--本文结束 感谢阅读--
创作十分不易,原创更应鼓励