数组与字符串函数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. 建立旧数组数据
  2. 建立新空数组
  3. 遍历旧数组数据
    如果 (元素不在新数组中) 则添加到新数组中 否则 什么也不用做
  4. 输出新数组

字符串练习题

题目1:字符串分割

将字符串 "apple,banana,orange" 按逗号分割为数组,结果是什么?

题目2:替换所有匹配项

将字符串 "hello world hello 预备技师" 中的所有 "hello" 替换为 "hi"

题目3:提取子字符串

使用 substringslice 从字符串 "JavaScript" 中提取第3到第5个字符(索引从0开始),结果为 "vaS"

题目4:判断包含子串

定义一个长字符串和一个短字符串,判断 长串是否包短串,并打印出 布尔值。

题目5:格式化字符串

将字符串 " hello world " 处理为全大写并无两端空格,结果为 "HELLO WORLD"

综合应用题

题目:反转单词顺序

将字符串 "Hello World" 反转单词顺序为 "World Hello"

解答
步骤:

  1. split(" ") 分割为数组 ["Hello", "World"]
  2. reverse() 反转数组 → ["World", "Hello"]
  3. join(" ") 合并为字符串