JavaScript 将对象转换为数组

JavaScript 将对象转换为数组

在 JavaScript 中,可以使用不同的方法将对象转换为数组。以下是一些常见的方法:

1. Object.keys() 方法:

这种方法将对象的键转换为数组。

const obj = { a: 1, b: 2, c: 3 };
const arr = Object.keys(obj);
console.log(arr); // 输出 [a, b, c]

2. Object.values() 方法:

这种方法将对象的值转换为数组。

const obj = { a: 1, b: 2, c: 3 };
const arr = Object.values(obj);
console.log(arr); // 输出 [1, 2, 3]

3. Object.entries() 和 map():

这种方法将对象的键值对转换为数组的元素。

情形一:

const obj = { a: 1, b: 2, c: 3 };
const arr = Object.entries(obj).map(([key, value]) => [key, value]);
console.log(arr); // 输出 [['a', 1], ['b', 2], ['c', 3]]

情形二:

const data = {
  apple: { name: "apple", count: 6 },
  pear: { name: "pear", count: 9 },
  banana: { name: "banana", count: 5 },
};

// 将对象转换为数组
const dataArray = Object.entries(data).map(([key, value]) => ({
  key,
  ...value,
}));

// 按照 count 属性升序排序
dataArray.sort((a, b) => a.count - b.count);

/* 输出:
[
  { key: "banana", name: "banana", count: 5 },
  { key: "apple", name: "apple", count: 6 },
  { key: "pear", name: "pear", count: 9 },
]*/

4. 使用循环迭代对象属性:

可以使用 for...in 循环来迭代对象的属性,并将它们添加到数组中。

const obj = { a: 1, b: 2, c: 3 };
const arr = [];
for (const key in obj) {
  if (obj.hasOwnProperty(key)) {
    arr.push(obj[key]);
  }
}
console.log(arr); // 输出 [1, 2, 3]
posted @ 2023-10-24 10:07  飞仔FeiZai  阅读(2438)  评论(0编辑  收藏  举报