js 三个数组 转化为一个数组对象 数组的每一项代表数组对象中的键名
时间: 2023-09-22 07:06:44 浏览: 52
可以使用 JavaScript 的 `reduce()` 方法来实现将三个数组转化为一个数组对象的操作。具体实现如下:
```javascript
const keys = ['name', 'age', 'gender'];
const values1 = ['Tom', 18, 'male'];
const values2 = ['Jerry', 20, 'female'];
const values3 = ['Bob', 22, 'male'];
const result = keys.reduce((acc, cur, index) => {
acc.push({ [cur]: [values1[index], values2[index], values3[index]] });
return acc;
}, []);
console.log(result);
```
其中,`keys` 数组包含了三个键名,`values1`、`values2` 和 `values3` 分别代表三个数组,`reduce()` 方法将三个数组转化为一个数组对象,对于每一个键名,使用对象字面量的方式创建一个键为该键名、值为一个数组的对象,并将三个数组的对应元素作为该数组的元素,最后将该对象添加到结果数组中。`reduce()` 方法返回最终的结果数组,即转化后的数组对象。
相关问题
js 三个数组 转化为一个数组对象 每一个数组代表一个键名
可以使用 JavaScript 的 `reduce()` 方法来实现将三个数组转化为一个数组对象的操作。具体实现如下:
```javascript
const keys = ['name', 'age', 'gender'];
const values1 = ['Tom', 18, 'male'];
const values2 = ['Jerry', 20, 'female'];
const values3 = ['Bob', 22, 'male'];
const result = [values1, values2, values3].reduce((acc, cur) => {
const obj = {};
keys.forEach((key, index) => {
obj[key] = cur[index];
});
acc.push(obj);
return acc;
}, []);
console.log(result);
```
其中,`keys` 数组包含了三个键名,`values1`、`values2` 和 `values3` 分别代表三个数组,`reduce()` 方法将三个数组转化为一个数组对象,`forEach()` 方法用于遍历 `keys` 数组,将当前元素作为键名,将当前数组的对应元素作为键值存储到一个对象中,最后将该对象添加到结果数组中。`reduce()` 方法返回最终的结果数组,即转化后的数组对象。
遍历删除数组中每个对象的某一个键
你可以使用 JavaScript 中的 `Array.prototype.map()` 方法遍历数组,然后使用 `delete` 操作符删除每个对象中指定的键。具体实现代码如下:
```javascript
const arr = [
{ id: 1, name: 'Alice', age: 22 },
{ id: 2, name: 'Bob', age: 25 },
{ id: 3, name: 'Charlie', age: 28 }
];
const keyToDelete = 'age';
const newArr = arr.map(obj => {
const newObj = { ...obj }; // 创建对象的浅拷贝
delete newObj[keyToDelete]; // 删除指定键
return newObj;
});
console.log(newArr);
```
运行结果:
```
[
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
]
```
在上面的代码中,我们使用 `Array.prototype.map()` 方法遍历原数组 `arr`,并返回一个新的数组 `newArr`。在每次遍历时,我们使用对象的浅拷贝创建一个新对象 `newObj`,然后使用 `delete` 操作符删除 `newObj` 中的指定键 `keyToDelete`,最后将 `newObj` 添加到新数组 `newArr` 中。这样就实现了遍历删除数组中每个对象的某一个键的功能。