📜  将对象对象转换为数组打字稿(1)

📅  最后修改于: 2023-12-03 15:39:16.820000             🧑  作者: Mango

将对象转换为数组

在编写 JavaScript 应用程序时,您可能需要将一个对象转换为数组。 这可以通过多种方式完成,本文将介绍其中的两种方法:Object.values和Object.entries。

Object.values

Object.values() 方法返回一个由对象自身的属性值组成的数组,数组的顺序与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于for-in循环还会遍历原型链中的属性)。

以下是用法示例:

const obj = { foo: 'bar', baz: 42 };
console.log(Object.values(obj)); // ['bar', 42]

如果您需要兼容不支持Object.values()方法的浏览器,可以使用以下代码来模拟该方法:

if (!Object.values) {
  Object.values = function(obj) {
    var vals = [];
    for (var key in obj) {
      if (obj.hasOwnProperty(key)) {
        vals.push(obj[key]);
      }
    }
    return vals;
  };
}
Object.entries

Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于for-in循环还会遍历原型链中的属性)。

以下是用法示例:

const obj = { foo: 'bar', baz: 42 };
console.log(Object.entries(obj)); // [['foo', 'bar'], ['baz', 42]]

如果您需要兼容不支持Object.entries()方法的浏览器,可以使用以下代码来模拟该方法:

if (!Object.entries) {
  Object.entries = function(obj) {
    var ownProps = Object.keys(obj),
        i = ownProps.length,
        resArray = new Array(i); // preallocate the Array
    while (i--)
      resArray[i] = [ownProps[i], obj[ownProps[i]]];
    
    return resArray;
  };
}

希望您现在理解了如何将对象转换为数组!