js数组字符串习题

把字符串翻转 “kjihgfedcba”

    let str = "abcdefghijk";
    const newStr = str.split('').reverse().join('');
    console.log(newStr);//kjihgfedcba
   //用split() 方法将对象分割成子字符串数组,再用everse() 方法颠倒数组中元素的顺序,最后jion()把数组中的所有元素放入一个字符串

2.分别统计出 及格和不及格的分数总和

// 2.分别统计出 及格和不及格的分数总和
    let subjectList = [
      { score: 10 },
      { score: 20 },
      { score: 30 },
      { score: 40 },
      { score: 50 },
      { score: 60 },
      { score: 70 },
      { score: 80 },
      { score: 90 },
      { score: 100 },
    ];

    // 不及格总和
    const fail = subjectList.filter(it => it.score < 60).reduce((acc, it) => acc += it.score, 0)
    console.log("不及格:", fail);
    // const newSub = subjectList.filter(it => it.score < 60)
    // let num = 0;
    // newSub.forEach(it => {
    //   num += it.score
    // });
    // console.log("不及格:", num);
    //及格
    const pass = subjectList.filter(it => it.score >= 60).reduce((acc, it) => acc += it.score, 0)
    console.log("及格:", pass);
    // const newSub1 = subjectList.filter(it => it.score >= 60)
    // let num1 = 0;
    // newSub1.forEach(it => {
    //   num1 += it.score
    // });
    // console.log("及格:", num1);

3. 截取域名 http://www.baidu.com 不能使用slice

    let href = "http://www.baidu.com?name=zs&age=18&sex=男";
    const newHref = href.split('?')[0]
    console.log(newHref);//http://www.baidu.com
//用split()以 ? 为分割字串分成两个字符串数组

4. 获取问号后面的参数 name=zs&age=18&sex=男 并且转成对象 {name:‘zs’,age:18,sex:‘男’}

    let href = "http://www.baidu.com?name=zs&age=18&sex=男";
    const newHref1 = href.split('?')[1]
    const newHref2 = newHref1.split('&')
    let obj = {}
    newHref2.forEach(it => { obj[it.split('=')[0]] = it.split('=')[1] })
    console.log(obj);//{name: 'zs', age: '18', sex: '男'}





// 第二种 
    // const res =  href.split('?')[1].split('&').reduce((acc,it)=> {
    //   console.log(it);
    //   acc[it.split('=')[0]] = it.split('=')[1]
    //   return acc
    // },{})

    //           ['name=zs', 'age=18', 'sex=男'].re...
    // const res =  href.split('?')[1].split('&').reduce((acc,it)=> (acc[it.split('=')[0]] = it.split('=')[1],acc) ,{})
    // console.log(res,'res');

5. 数字去重 [1,2,3,4,5]

        let arr = [1, 2, 3, 4, 5, 1, 2, 3];

//第一种
    let newArr = arr.filter((item, index) => {
      return arr.indexOf(item) === index;
    });
    console.log(newArr)


//第二种
    let newArr = []
    arr.forEach(it => {
      if (!newArr.includes(it)) {
        newArr.push(it)
      }
    })
    console.log(newArr)

//第三种
    const newArr = arr.reduce((acc, item) => acc.includes(item) ? acc : [...acc, item], [])
    console.log(newArr)
//set去重
    console.log(new Set(arr));
    console.log(Array.from(new Set(arr)));
   // console.log([...new Set(arr)]);

6. 统计数组中每个元素出现的次数 {1:2,2:2,3:2,4:1,5:1}

        let arr = [1, 2, 3, 4, 5, 1, 2, 3];


   let obj = {}
    arr.forEach(item => {
      obj[item] = obj[item] ? obj[item] + 1 : 1
    })
    console.log(obj);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值