js写三个函数将多个数组合并
时间: 2023-07-28 13:26:11 浏览: 161
以下是三种实现方式:
1. 使用 Array.prototype.concat() 方法
```javascript
function mergeArrays(...arrays) {
return [].concat(...arrays);
}
```
2. 使用 Array.prototype.reduce() 方法
```javascript
function mergeArrays(...arrays) {
return arrays.reduce((acc, cur) => [...acc, ...cur], []);
}
```
3. 使用 Array.prototype.flat() 方法
```javascript
function mergeArrays(...arrays) {
return arrays.flat();
}
```
这三种方式都可以将多个数组合并成一个数组,具体选择哪种方式取决于你的编程习惯和项目需求。
相关问题
js 多个二维数组 列合并
如果你有多个二维数组,想要将它们按列合并,可以使用以下代码:
```javascript
function mergeArrays(arrays) {
if (!Array.isArray(arrays) || !arrays.length) {
return [];
}
const maxLength = Math.max(...arrays.map(arr => arr.length));
const result = Array.from({ length: maxLength });
for (let i = 0; i < maxLength; i++) {
result[i] = [].concat(...arrays.map(arr => arr[i] || []));
}
return result;
}
```
这个函数接受一个数组参数 `arrays`,其中包含多个二维数组。函数返回一个按列合并的新数组。如果 `arrays` 参数不是数组或为空数组,则返回空数组。
函数中使用了 `Math.max()` 方法和 `Array.from()` 方法来获取最长的数组长度,并创建一个新数组 `result` 来存储结果。接着使用 `for` 循环以及 `concat()` 方法来将每个数组的每一列按顺序合并到 `result` 数组中。
下面是一个使用示例:
```javascript
const arr1 = [[1, 2], [3, 4], [5, 6]];
const arr2 = [[7, 8], [9, 10]];
const arr3 = [[11, 12]];
const merged = mergeArrays([arr1, arr2, arr3]);
console.log(merged);
// Output: [[1, 2, 7, 8, 11, 12], [3, 4, 9, 10, undefined, undefined], [5, 6, undefined, undefined, undefined, undefined]]
```
在这个示例中,我们将三个二维数组按列合并到一个新的二维数组 `merged` 中。注意,如果某个输入数组的长度比其他数组短,那么在合并时会自动用 `undefined` 填充缺失的值。
js中如何合并数组并且去重
在JavaScript中,可以使用多种方法来合并两个或更多数组并去除其中的重复元素。以下是几种常见的方式:
1. **`concat()` + `filter()`**:
```javascript
let arr1 = [1, 2, 3];
let arr2 = [2, 4, 5];
let mergedAndUnique = [...arr1, ...arr2].filter((value, index, self) => {
return self.indexOf(value) === index;
});
```
这里先通过`concat()`合并数组,然后`filter()`过滤掉首次出现之外的元素。
2. **利用Set数据结构**:
Set是ES6引入的一种特殊的集合,成员的值都是唯一的,没有重复的值。我们可以将数组转换成Set,然后再转回数组。
```javascript
let arr1 = [1, 2, 3];
let arr2 = [2, 4, 5];
let mergedAndUnique = [...new Set([...arr1, ...arr2])];
```
3. **`reduce()`**:
也可以使用`reduce()`函数,结合一个新数组来存储结果,并在遍历过程中检查元素是否已存在。
```javascript
let arr1 = [1, 2, 3];
let arr2 = [2, 4, 5];
let mergedAndUnique = arr1.concat(arr2).reduce((acc, val) => acc.includes(val) ? acc : [...acc, val], []);
```
这三种方法都能达到合并并去重的效果。
阅读全文