所以我有一个像这样的对象:
var obj = { foo: function() { ... }, bar: function() { ... }, baz: 10 };
我想使用 vanilla ECMAScript 3 Javascript 将其转换为:
[
{ name: "foo", value: function() { ... } },
{ name: "bar", value: function() { ... } },
{ name: "baz", value: 10 }
]
我该怎么做?
注意:它必须在 IE8 上运行。
最佳答案
一个简单的for..in
循环就可以解决这个问题,它从 ECMAScript 1 就已经存在了。
function o2a(o) {
var arr = [],
k;
for (k in o) {
arr.push({'name': k, 'value': o[k]});
}
return arr;
}
// Now can do
var obj = { foo: function() { /* ... */ }, bar: function() { /* ... */ }, baz: 10 };
o2a(obj);
// [
// {name:"foo", value: function.. },
// {name:"bar", value: function.. },
// {name:"baz", value: 10}
// ]
关于javascript - 将对象转换为对象数组,每个对象包含原始对象的属性和值之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31659890/