javascript - 将对象转换为对象数组

标签 javascript jquery

我有一个格式为

的 JavaScript 对象
{
    "header": {
        "dataFields": ["number", "name", "quantity", "id", "from"]
    },
    "data": [
        "20|sam|12|2|2012-06-29T00:00Z|",
        "18|peter|231|12|",
    ]
}

我正在尝试将其转换为以下格式:

[{"number" : "20", "name":"sam", "quantity" : "12", "id":"2"},
 {"number" : "18", "name":"peter", "quantity": "231", "id" 12"}]

我不想要输出数组中的字段“from”。实现它的最佳方法是什么??

var l={};

for ( var key in responseData.positions[i]){
    l.name=key;
        for(var k=0; k<responseData.positions.length;k++){
            for ( var key in responseData.positions[k]) {
                l.value= responseData.positions[k][key] ;
            }
        }
mainArray.push(l);

最佳答案

您可以使用数组映射方法来迭代数据数组并进行转换。

代码和现场演示:http://jsfiddle.net/N9QyQ/

var object={
"header": {
    "dataFields": ["number", "name", "quantity", "id", "rom"]
},
"data": [
    "20|sam|12|2|2012-06-29T00:00Z",
    "18|peter|231|12|"
 ]
} ;
var result=object.data.map(function(string){
    var split=string.split("|"), item={};
    for (var i=0;i<4;i++) {
        item[object.header.dataFields[i]]=split[i];
    }
    return item;
});

关于javascript - 将对象转换为对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12948307/

相关文章:

javascript - 引导轮播 : Uncaught TypeError: Cannot read property 'offsetWidth' of undefined

javascript - 通过在 React 中使用 useRef 钩子(Hook)获取另一个组件的宽度来调整一个组件的大小

javascript - 您可以将事件绑定(bind)到访问键吗?

jquery - 有没有类似:eq() in jQuery?的标准CSS选择器

javascript - 查找水平移动元素的每个 X、Y 位置

javascript - React - 安装 react 表

javascript - 延迟 jQuery.each 结果

jquery - 非法调用 (jQuery)

jquery - 尝试将一些文本和按钮放在 WOWSlider 的幻灯片顶部

javascript - 如何正确处理 Webpack 和 jQuery 依赖项