一、字符串翻转
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);