📅  最后修改于: 2023-12-03 15:39:16.820000             🧑  作者: Mango
在编写 JavaScript 应用程序时,您可能需要将一个对象转换为数组。 这可以通过多种方式完成,本文将介绍其中的两种方法:Object.values和Object.entries。
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() 方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 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;
};
}
希望您现在理解了如何将对象转换为数组!