javascript - 将对象转换为对象数组,每个对象包含原始对象的属性和值之一

标签 javascript arrays object

所以我有一个像这样的对象:

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/

相关文章:

javascript - jquery stopPropagation() 并发送 "event"?

arrays - 查询存储在数组 swift 中的用户 objectID

arrays - 错误: Objects are not valid as a React child (found: object with keys {articles})

javascript - 为什么 jQuery 扩展方法不复制我的 javascript 对象?

javascript - 在 TypeScript 中,如何将属性添加到接口(interface)中的对象类型?

javascript - 检查数组元素的一部分是否包含特定字符串

javascript - 无法使用vue和moment将参数传递给 Jasmine 中的按钮方法

javascript - jQuery ajax数据发布问题

arrays - PL/SQL关联数组验证索引是否存在

java - 使用字符串数组从对象数组列表中删除项目 - android