数组与字符串函数1
有的题目 可以有多个解法,要求大家理解我给出的解法,并自己编写一种方法。
数组练习题
题目1:基础操作
创建一个空数组,依次执行以下操作:
- 用
push添加元素 “apple” - 用
unshift添加元素 “banana” - 用
push添加元素 “orange”
最终数组的内容是什么?要求写出完事代码
题目2:过滤偶数
编写一个函数 filterEvenNumbers(arr),接收一个数字数组,返回包含所有偶数的新数组。
示例:输入 [1, 2, 3, 4, 8,10,5],输出 [2, 4, 8,10]。
步骤:
filter遍历数组,保留满足num % 2 === 0的元素。
题目3:数组求和
编写一个函数 sumArray(arr),用 reduce 计算数组所有元素的和。
示例:输入 [10, 20, 30],输出 60。
步骤:
reduce初始值设为0,逐次累加元素。
题目4:数组合并
将数组 [1, 2] 和 [3, 4] 合并为一个新数组 [1, 2, 3, 4],至少写出两种方法。
解答
方法1:concat
1const arr1 = [1, 2];
2const arr2 = [3, 4];
3const merged = arr1.concat(arr2);方法2:扩展运算符
1const merged = [...arr1, ...arr2];方法3:使用push 等 把数组添加到新数组中
1// 学生完成
题目5:数组去重
获取去重复值后的数组。
示例:输入 ["a", "b", "a", "c"],输出 ["a", "b", "c"]。
解答
方法1:使用 Set
1 let newArr = [...new Set(arr)];方法2:filter + indexOf
1 let newArr = arr.filter((item, index) => arr.indexOf(item) === index);方法3: includes
解答
步骤:
- 建立旧数组数据
- 建立新空数组
- 遍历旧数组数据
如果 (元素不在新数组中) 则添加到新数组中 否则 什么也不用做 - 输出新数组
字符串练习题
题目1:字符串分割
将字符串 "apple,banana,orange" 按逗号分割为数组,结果是什么?
题目2:替换所有匹配项
将字符串 "hello world hello 预备技师" 中的所有 "hello" 替换为 "hi"。
题目3:提取子字符串
使用 substring 或 slice 从字符串 "JavaScript" 中提取第3到第5个字符(索引从0开始),结果为 "vaS"。
题目4:判断包含子串
定义一个长字符串和一个短字符串,判断 长串是否包短串,并打印出 布尔值。
题目5:格式化字符串
将字符串 " hello world " 处理为全大写并无两端空格,结果为 "HELLO WORLD"。
综合应用题
题目:反转单词顺序
将字符串 "Hello World" 反转单词顺序为 "World Hello"。
解答
步骤:
- 用
split(" ")分割为数组["Hello", "World"] - 用
reverse()反转数组 →["World", "Hello"] - 用
join(" ")合并为字符串