数组与字符串函数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(" ")
合并为字符串