【发布时间】:2015-12-05 12:49:42
【问题描述】:
首先:我已经找到了this thread,这基本上正是我想要的,但我尽力将它应用到我的需求中——我做不到。
所以,我有以下 javascript 函数:
function loadRelationData(object) {
var result = [];
var parents = []
parents = getParentObjectsByObjectID(object['ObjectID']);
var tmpFirstObjects = [];
var tmpOtherObjects = [];
$.each(parents, function (_, parent) {
var keyName = 'Übergeordnete ' + parent['ObjectType'];
var pushObject = {};
if (parent['ObjectType'] == object['ObjectType']) {
pushObject['Fieldname'] = keyName;
pushObject['Value'] = parent['Name'];
tmpFirstObjects.push(pushObject);
} else {
pushObject['Fieldname'] = keyName;
pushObject['Value'] = parent['Name'];
tmpOtherObjects.push(pushObject);
}
});
result = result.concat(tmpFirstObjects).concat(tmpOtherObjects);
return result;
}
父母数组看起来像this
我的函数创建了这个result
这可能有点复杂,但我需要这样拆分,因为我需要订单。
我想要的是一个包含两个“TEC_MapLocations”的数组,如下所示:
[
{Fieldname: 'Übergeordnete TEC_Equipment', Value: 'E0192'},
{Fieldname: 'Übergeordnete TEC_MapLocation', Value: ['M100', 'M200']},
{Fieldname: 'Übergeordnete TEC_FunctionalLocation', Value: 'FL456'}
]
关于如何更改我的代码以立即获得所需结果或如何合并结果数组的任何想法?
编辑:我使用了Joseph's solution,并使用了以下(快速而肮脏的)排序函数来取回我想要的排序:
output.sort(function (a, b) {
if (a.ObjectType == object.ObjectType) {
return -1
} else {
return 1
}
});
【问题讨论】:
标签: javascript jquery arrays javascript-objects