使用 Javascript 将对象(元素)向上移动一级

ilh*_*han 3 javascript object filter javascript-objects extjs4.1

我有几个这样的对象:

在此输入图像描述

我想移动type一步value,这样他们就在旁边field,然后删除data。转换成 JSON
后看起来像这样:departments

[
    {"field"    : "DEPARTMAN_NO",
     "data"     : { "type":"numeric" , "comparison":"eq" , "value":11 }
    },
    {"field"    : "DEPARTMAN_ADI",
     "data"     : { "type":"string" , "value":"bir" }
    }
]
Run Code Online (Sandbox Code Playgroud)

我努力了:

departments = grid.filters.getFilterData();
i = {};
for(var i in department) {
department = i.data;
delete.department.data;
};
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

wik*_*iky 5

1)首先,循环departments,每一项我们称之为department
2)你想将department.data的属性移动到department,从另一个角度来说,你可以将department的属性移动到department.data并返回department.data,代码如下:

var departments = [{
        "field": "DEPARTMAN_NO",
        "data": {
            "type": "numeric",
            "comparison": "eq",
            "value": 11
        }
    }, {
        "field": "DEPARTMAN_ADI",
        "data": {
            "type": "string",
            "value": "bir"
        }
    }],
    department;

for (var i = 0, len = departments.length; i < len; i++) {
    department = departments[i]; // department
    for (var key in department) {
        if (key !== 'data' && department.data) {
            department.data[key] = department[key];
        }
    }
    departments[i] = department.data || department; // if no department.data, no change
}

console.log(departments);
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

查看完整演示http://jsfiddle.net/KVYE5/