js练习题

文章介绍了JavaScript中针对字符串和数组的六种常见操作,包括字符串反转、分数统计、URL参数提取、对象构建、数字去重以及元素频率统计,展示了数组方法如split(),reverse(),join(),map(),filter(),forEach()的实用技巧。
摘要由CSDN通过智能技术生成
// 1.把字符串翻转 "kjihgfedcba"
// 2.分别统计出 及格和不及格的分数总和
// 3. 截取域名 http://www.baidu.com  不能使用slice
// 4. 获取问号后面的参数  name=zs&age=18&sex=男 并且转成对象  {name:'zs',age:18,sex:'男'}
// 5. 数字去重 [1,2,3,4,5]
// 6. 统计数组中每个元素出现的次数  {1:2,2:2,3:2,4:1,5:1}

以上六个题是对数组方法及字符串方法的练习。

第一题

涉及知识点

数组方法:

字符串转为数组的方法 split()、翻转转reverse()

字符串方法:

数组转字符串 join()

思路:

要得到翻转的字符串 :

1、字符串转数组 

2、数组翻转 

3、转为字符串

// 1.把字符串翻转 "kjihgfedcba"

let str = "abcdefghijk"; 
 let str1 = str.split("").reverse().join('')
 console.log(str1);

第二题

let subjectList = [
  { score: 10 },
  { score: 20 },
  { score: 30 },
  { score: 40 },
  { score: 50 },
  { score: 60 },
  { score: 70 },
  { score: 80 },
  { score: 90 },
  { score: 100 },
];
// 2.分别统计出 及格和不及格的分数总和
let sum = 0 
let sum1 = 0
let sum = subjectList.map((item) => item.score).filter((it)=> it>=60).forEach((it)=>
sum += it
let sum1 = subjectList.map((item) => item.score).filter((it)=> it<=60).forEach((it)=>
sum += it)
console.log(sum))//sum 及格 400
console.log(sum1)//sum1 不及格 210
涉及知识点

数组方法:

字符串转为数组的方法map()(映射)、filter()(过滤,输出数组)、forEach() (循环)

思路:

求和 :

1、映射出数组对象里面的分数值。

2、过滤出符合条件的数字(注意输出的是数组)。

3、咯用循环求和,求数组内的累加和。

第三题

let href = "http://www.baidu.com?name=zs&age=18&sex=男";

// 3. 截取域名 http://www.baidu.com  不能使用slice
let hrefa = href.split("?")[0]
console(hrefa)
涉及知识点

字符串方法:

字符串转为数组的方法 split()

思路:

split(' 截取')[ 0/1 ]

此处数组截取被分为两个数组,前一个数组为0后一个为1。

第四题

//let href = "http://www.baidu.com?name=zs&age=18&sex=男";
//4. 获取问号后面的参数  name=zs&age=18&sex=男 并且转成对象  {name:'zs',age:18,sex:'男'}
let hrefa = href.split('?')[1] //获取问号后面的参数
        let hrefb = hrefa.split('&')//&符号隔开
        let obj = {}//声明对象
        hrefb.forEach((it)=>//利用循环遍历hrefb
        {
            obj[it.split('=')[0]] = it.split('=')[1]// obj[key] = 值 
        })
涉及知识点

数组方法:

字符串转为数组的方法 split()、forEach()

思路:

利用split()把他们隔开 取到需要的参数, 利用循环将值存入obj

此处数组截取被分为两个数组,前一个数组为0后一个为1。

第五题


// 5. 数字去重 [1,2,3,4,5]   
let arra =[];
let arr = [1, 2, 3, 4, 5, 1, 2, 3];
        arr.forEach((it) => {
            if(!arra.includes(it)) { 
                arra.push(it);//在数组中添加
            }
        }
        )
        console.log(arra);
涉及知识点

数组方法:includes()判断数组里是否包含某个值, 返回布尔值。

数组.push()        在数组末尾添加一个值

forEach()

思路:

遍历arr数组中的每一个值,新数组不包含相同的值就输出

第六题

// 6. 统计数组中每个元素出现的次数  {1:2,2:2,3:2,4:1,5:1}
  let obj1 = { }      
      arr.forEach(it =>{
        obj[it]? obj[it] ++ : obj[it] = 1
      })

      console.log(obj);
涉及知识点

数组方法:forEach()

思路:

遍历arr 如果arr中的键obj1也有,就输出1 

如果没有就自增1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值