js 二维对象数组变成一维对象数组
时间: 2023-10-07 09:14:31 浏览: 217
可以使用 JavaScript 中的 `Array.prototype.flat()` 方法将二维数组转换为一维数组,然后使用 `Array.prototype.map()` 方法对每个元素进行处理,将其转换为对象。例如:
```javascript
const arr = [[{name: 'Alice', age: 25}, {name: 'Bob', age: 30}], [{name: 'Charlie', age: 35}, {name: 'David', age: 40}]];
const flatArr = arr.flat(); // 将二维数组转换为一维数组
const objArr = flatArr.map(item => ({name: item.name, age: item.age})); // 将每个元素转换为对象
console.log(objArr); // [{name: 'Alice', age: 25}, {name: 'Bob', age: 30}, {name: 'Charlie', age: 35}, {name: 'David', age: 40}]
```
在上面的代码中,我们首先使用 `flat()` 方法将二维数组转换为一维数组,然后使用 `map()` 方法对每个元素进行处理,将其转换为对象并将其添加到新数组中。
相关问题
js 二维数组对象变成一维
你可以使用 Array.prototype.flat() 方法将二维数组对象变成一维数组。
这个方法将所有子数组元素提取到一个新数组中并返回。默认情况下,它会将所有嵌套数组的深度降至 1,这样就可以将二维数组转换为一维数组。
例如:
```javascript
const arr = [[1, 2], [3, 4], [5, 6]];
const flatArr = arr.flat();
console.log(flatArr); // [1, 2, 3, 4, 5, 6]
```
如果你的数组中还包含其他对象类型,你可以使用 flat() 方法的可选参数 depth 来指定要提取的子数组深度。
例如:
```javascript
const arr = [[1, 2], [3, [4, 5]], [6, 7]];
const flatArr = arr.flat(2);
console.log(flatArr); // [1, 2, 3, 4, 5, 6, 7]
```
在这个例子中,我们将 depth 设置为 2,以便将所有嵌套数组的元素提取到一维数组中。
js 怎么把二维数组对象变成一维
可以使用 `Array.prototype.flat()` 方法将二维数组对象转换为一维数组。
示例代码如下:
```javascript
const arr = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' },
{ id: 4, name: 'David' }
];
const flatArr = arr.flat();
console.log(flatArr); // [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' }, { id: 4, name: 'David' }]
```
如果想要将二维数组对象的某个属性值提取出来组成一维数组,可以使用 `Array.prototype.map()` 方法。
示例代码如下:
```javascript
const arr = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' },
{ id: 4, name: 'David' }
];
const flatArr = arr.map(item => item.id);
console.log(flatArr); // [1, 2, 3, 4]
```
以上两种方法都可以将二维数组对象转换为一维数组,具体使用哪种方法取决于需求。