javascript 数组、对象相关操作题

一、字符串翻转

 let str = "abcdefghijk" ;

把字符串翻转 “kjihgfedcba”
思路:字符串转数组,反转数组,数组转字符串。

  • split(“”):根据空字符串拆分数组
  • reverse():数组反转元素位置
  • join(“”):数组转回字符串,且不带分隔符
 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 },
      ];

思路:使用循环遍历数组的每个元素,然后根据分数进行条件判断,并累加相应的总和。

1、第一种

    let jige= 0;  //及格
    let bujige = 0;  //不及格
    subjectList.forEach(subject => {  //遍历数组每个元素
    let score = subject.score;
        if (score >= 60) {
    jige += score;
    } else {
    bujige  += score;
    }
  });
  console.log("及格分数总和:", jige);
  console.log("不及格分数总和:", bujige);

在这里插入图片描述
2、第二种

先对数组元素过滤,得到符合条件的数据。然后用reduce()方法计算,初始值为0。对符合条件的数值相加。

//及格
   let passSum=subjectList.filter((item)=>item.score>59).reduce((arr,it)=>arr+=it.score,0)
   console.log(passSum);
//不及格
   let minSum =subjectList.filter((item)=>item.score<60).reduce((arr,it)=>arr+=it.score,0)
   console.log(minSum);

三、字符串截取

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

截取域名 http://www.baidu.com
思路:利用split()进行截取。利用分隔符? 可将字符串分割成两个数组,取第一个数组即可。

 let href = "http://www.baidu.com?name=zs&age=18&sex=男";
 let yuming = href.split('?')[0];
 console.log("域名:", yuming);

四、参数转对象

对字符串 ?后面的内容转成对象形式。{name:‘zs’,age:18,sex:‘男’}
http://www.baidu.com?name=zs&age=18&sex=男
思路:利用split()方法先对字符串进行分割,然后在声明一个对象,对处理后的数据遍历。利用键值转成对象。

 let href = "http://www.baidu.com?name=zs&age=18&sex=男";
  let Str = href.split('?')[1]; 
    // console.log(Str);   //  name=zs&age=18&sex=男
  let Array = Str.split('&');
    console.log(Array);   //  ['name=zs', 'age=18', 'sex=男']
  let Object = {};
  Array.forEach(Array=> {
  let [key, value] = Array.split('=');
  Object[key] = (value);
  });
    console.log(Object);

五、数组去重

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

思路:利用 filter()和indexOf()进行数组去重。
在filter()中使用:对indexOf得到的数组元素位置和按顺序排列的数组位置做比较,两个相同就是不重复元素。

 let ARR = [1, 2, 3, 4, 5, 1, 2, 3];
      let arrs = ARR.filter((value, index,ARR)=>ARR.indexOf(value)===index)

六、数组中元素出现的次数

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

思路:先创建一个对象,来保存元素出现的次数。然后对数组的每一个元素循环,在循环中,我们首先获取当前元素。然后,我们检查count对象中是否已经存在该元素作为键。如果存在,说明该元素已经出现过,我们将对应的计数值加1;如果不存在,说明该元素是第一次出现,我们将其作为新的键,并将计数值设置为1。

   const numbers= [1, 2, 3, 4, 5, 1, 2, 3];
      const count = {};
      numbers.forEach((number) => {
        if (count[number]) {
          count[number] += 1;
        } else {
          count[number] = 1;
        }
      });
      console.log(count);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值