// 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