第二周测试练习
1、写一个字符串反转函数,实现字符串倒序。
var str ="abcdefghi"
function fn(str){
var str1 = ''
for(var i=0;i<str.length;i++){
str1+=str.charAt(str.length-1-i);
}
console.log(str1);
}
fn(str)
2. 请借助Array内置对象的相关方法,实现字符串倒序排列。
var str = 'mnghtfr'
var str1 = str.split('').reverse().join('')
console.log(str1);
3. 写一个函数,能获取文件后缀;
var text = '45789631.html'
function fn1(text){
var location = text.lastIndexOf('.')+1;
console.log(text.substring(location));
}
fn1(text)
4. 请将字符串open_my_door这种形式,转成OpenMyDoor的形式。
var text ="open_my_door";
var newArr=text.split("_");//通过"_"剪切成'open','my','door'
var str=new Array(3);
for( var i=0;i<newArr.length;i++){
// 通过找到newArr的每一个元素的第一个首字母变成大写剪切然后加上从第二个元素开始的后面剪切到结束,以此类推
str[i]=newArr[i].substring(0,1).toUpperCase() + newArr[i].substring(1);
}
// join连接成字符串
console.log(str.join(""));
5. 写一个实现字符串首字母大写的函数;
var str = 'oklingebd'
function fn2(str){
return str.substring(0,1).toUpperCase()+str.substring(1)
}
console.log(fn2(str));
6. 写一个函数,实现去除字符串左右空格;
var str =' nkcdhcuiw '
function fn3(str){
str = str.replace(/^(\s|\u00A0)+/,'');
for(var i = str.length-1;i>=0;i--){
if(/\s/.test(str.charAt(i))){
str = str.substring(0,i+1)
break
}
}
return str
}
console.log(fn3(str));
7. 写一个获取斐波那契数列前N项的函数,返回一个数组,将数列中的每个数值存入数组;
var arr = new Array()
function fn4(n){
if((n==1)||(n==2)){
return 1
}else{
return fn4(n-1)+fn4(n-2)
}
}
var n=15
for(var i=1;i<=n;i++){
var result = 0
result = fn4(i)
arr.push(result)
}
console.log(arr);
8. 写一个获取阶乘的函数,返回一个字符串,其中是阶乘表达式和结果;
function fn5(n){
var str = '=1'
var result = 1
for(var i=2;i<=n;i++){
str+='*'+i
result*=i
}
return result.toString().concat(str)
}
console.log(fn5(4));
9. 用递归的思想,写一个求取n的阶乘的函数。
function fn6(n){
if(n==1){
return 1
}else if(n==2){
return 2
}else{
return fn6(n-1)*n
}
}
console.log(fn6(4));
10. 写代码,能实现对多选项至少勾选一项的验证;
<body>
<input type="checkbox" name="check">
<input type="checkbox" name="check">
<input type="checkbox" name="check">
<input type="checkbox" name="check">
<input type="checkbox" name="check">
<script>
var checks = document.querySelectorAll('input[type ="checkbox"]')
for(var i=0;i<checks.length;i++){
checks[i].onclick = function(){
if(checkCount()<1){
alert('当前必须选择一个')
this.checked = true//当前只有一个情况 防止取消的功能
}
}
}
// 封装一个函数 来检索对应的选项个数
function checkCount(){
var count = 0
for(var i=0;i<checks.length;i++){
if(checks[i].checked){
count++
}
}
return count
}
</script>
</body>
11、全选功能、反选功能的实现
<body>
<input type="checkbox" name="" id="controll">全选/取消全选
<input type="checkbox" name="" id="unselected">反选
<!-- 全选/取消全选 -->
<div>
<input type="checkbox" name="" id="">
<input type="checkbox" name="" id="">
<input type="checkbox" name="" id="">
<input type="checkbox" name="" id="">
<input type="checkbox" name="" id="">
</div>
<script>
// 获取全选操作的及反选操作的checkbox
var controll = document.getElementById('controll')
var checks = document.querySelectorAll('div>input[type="checkbox"]')
controll.onclick = function(){
// 全选
// if(this.checked){
// changeCheckBox(true)
// }else{
// changeCheckBox(false)
// }
changeCheckBox(this.checked)
}
// 用于选中对应的checkbox以及对应的取消选中 根据对应的传入的参数进行判断
function changeCheckBox(isChecked){
// 遍历chechbox
for(var i=0;i<checks.length;i++){
checks[i].checked = isChecked
}
}
// 反选操作
var unselected = document.querySelector('#unselected')
unselected.onclick = function(){
if(this.checked){
reve()
}
}
// 封装反选函数
function reve(){
for(var i=0;i<checks.length;i++){
// 将选中的改为未选中,未选中的改为选中
checks[i].checked = !checks[i].checked
}
}
// 当你点击下面的checkbox,当下面是全选的话,上面的全选框要被勾选,对应下面如果少了,上面的全选就要取消
for(var i=0;i<checks.length;i++){
// 将选中的改为未选中,未选中的改为选中
checks[i].onclick = function(){
// 统计对应的个数
if(checkCount()==checks.length){
controll.checked=true
}else{
controll.checked=false
}
}
}
function checkCount(){
var count = 0
for(var i=0;i<checks.length;i++){
if(checks[i].checked){
count++
}
}
return count
}
</script>
</body>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律