数组转对象,对象转数组
时间: 2023-11-12 20:00:05 浏览: 77
数组转对象:
假设有一个数组 arr,其中每个元素都是一个包含 name 和 value 属性的对象。我们可以使用 reduce 函数将其转换为一个对象:
```javascript
const arr = [
{ name: 'foo', value: 123 },
{ name: 'bar', value: 456 },
{ name: 'baz', value: 789 }
];
const obj = arr.reduce((acc, cur) => {
acc[cur.name] = cur.value;
return acc;
}, {});
console.log(obj); // { foo: 123, bar: 456, baz: 789 }
```
对象转数组:
假设有一个对象 obj,其中每个属性都是一个包含 name 和 value 属性的对象。我们可以使用 Object.keys 和 map 函数将其转换为一个数组:
```javascript
const obj = {
foo: { name: 'foo', value: 123 },
bar: { name: 'bar', value: 456 },
baz: { name: 'baz', value: 789 }
};
const arr = Object.keys(obj).map(key => obj[key]);
console.log(arr); // [ { name: 'foo', value: 123 }, { name: 'bar', value: 456 }, { name: 'baz', value: 789 } ]
```
注意,数组的顺序可能与对象属性的顺序不同。如果需要按照特定的顺序将属性转换为数组,可以使用 Object.entries 和 sort 函数。例如,按照 name 属性升序排列:
```javascript
const arr = Object.entries(obj)
.map(([key, value]) => value)
.sort((a, b) => a.name.localeCompare(b.name));
console.log(arr);
```
阅读全文