题解 | #数组合并#
数组合并
https://www.nowcoder.com/practice/ba9ee11affbd44539a4104d7f098f06b
在 JavaScript 中,有多种方法可以合并两个数组。以下是几种常用的方法:
1. 使用 concat()
方法
concat()
方法可以连接两个或多个数组,并返回一个新数组,而不会修改现有数组。
javascript复制代码let array1 = [1, 2, 3]; let array2 = [4, 5, 6]; let mergedArray = array1.concat(array2); console.log(mergedArray); // 输出: [1, 2, 3, 4, 5, 6]
2. 使用扩展运算符(Spread Operator)
扩展运算符(...
)可以将一个数组的元素展开到另一个数组中,从而实现合并。
javascript复制代码let array1 = [1, 2, 3]; let array2 = [4, 5, 6]; let mergedArray = [...array1, ...array2]; console.log(mergedArray); // 输出: [1, 2, 3, 4, 5, 6]
3. 使用 Array.prototype.push.apply()
方法
你可以使用 push.apply()
方法将一个数组的所有元素推入另一个数组中。注意,这种方法会修改第一个数组。
javascript复制代码let array1 = [1, 2, 3]; let array2 = [4, 5, 6]; Array.prototype.push.apply(array1, array2); console.log(array1); // 输出: [1, 2, 3, 4, 5, 6]
由于 push.apply()
会修改原数组,如果你不想改变 array1
,可以先复制它。
javascript复制代码let array1Copy = array1.slice(); // 或者使用 [...array1] Array.prototype.push.apply(array1Copy, array2); console.log(array1Copy); // 输出: [1, 2, 3, 4, 5, 6] console.log(array1); // 输出: [1, 2, 3],原数组未被修改
4. 使用循环
你也可以使用循环来手动合并数组,但这通常不是最高效的方法。
javascript复制代码let array1 = [1, 2, 3]; let array2 = [4, 5, 6]; let mergedArray = []; for (let i = 0; i < array1.length; i++) { mergedArray.push(array1[i]); } for (let i = 0; i < array2.length; i++) { mergedArray.push(array2[i]); } console.log(mergedArray); // 输出: [1, 2, 3, 4, 5, 6]
5. 使用 reduce()
方法(较少用)
虽然不常见,但你也可以使用 reduce()
方法来合并数组。
javascript复制代码let array1 = [1, 2, 3]; let array2 = [4, 5, 6]; let mergedArray = array1.reduce((acc, val) => { acc.push(val); return acc; }, []).concat(array2); // 或者更简洁地,但注意这是两步合并,不是直接一步用 reduce 完成 let mergedArrayOneStep = (array1.concat(array2)).reduce((acc, val) => { acc.push(val); return acc; }, []); // 但这里其实直接使用 concat 就足够了,reduce 是多余的 console.log(mergedArray); // 输出: [1, 2, 3, 4, 5, 6] // 注意:上面的 reduce 例子其实是多余的,仅用于展示 reduce 的用法,并不推荐这样合并数组
在实际应用中,concat()
和扩展运算符是最常用和推荐的方法,因为它们简单且易于理解。