一個對象我需要從以下輸入的輸出:創建從另一個
輸入格式:
var inputParams = {
'inputDetails' :[
{ 'field' : 'specificationName', 'value' : 'strong'},
{ 'field' : 'specificationName', 'value' : 'weak'},
{ 'field' : 'specificationName', 'value' : 'energetic'}
{ 'field' : 'incident', 'value' : '123'},
{ 'field' : 'groupId', 'value' : 'g1'},
{ 'field' : 'groupId', 'value' : 'group1'},
]
};
輸出格式:
var outputParams = {
'paramDetail': [
{ 'field' : 'specificationName', 'value' : [ 'strong ', 'weak' ,'energetic']},
{ 'field' : 'incident', 'value' : ['123']},
{ 'field' : 'groupId', 'value' : ['g1', 'group1']},
]
};
我曾嘗試的邏輯是:
var changedList = {
changedJsonObject : []
};
var i = 0 ;
var prev;
var firstTime = true;
var index = 0;
var facetfields = ['strong', 'weak' ,'energetic'];
do {
if (!params[index].field.localeCompare(facetFields[i])) {
if (prev == null) {
prev = params[index].field;
}
console.log(index + " " + params[index].field + " " + params[index].value);
if (!prev.localeCompare(params[index].field)) {
if (firstTime) {
console.log("create");
outputParams.paramDetail.push({
"field": params[index].field,
"value": [params[index].value]
});
firstTime = false;
} else {
console.log("update");
for (var tempInd = 0; tempInd < outputParams.paramDetail.length; tempInd++) {
if (!outputParams.paramDetail[tempInd].field.localeCompare
(params[index].field)) {
outputParams.paramDetail[tempInd].value =
outputParams.paramDetail[tempInd].value + "," + params[index].value;
break;
}
}
}
}
} else {
i++;
index = index - 1;
firstTime = true;
prev = null;
}
}
index++;
}
while (index < params.length);
for (var s in outputParams.paramDetail) {
console.log(outputParams.paramDetail[s].field);
console.log(outputParams.paramDetail[s].value);
}
輸出o F中的上述代碼應爲:
specificationName [ 「強」, 「弱」, 「有活力」] 入射 [ 「123」] GROUPID [ 「G1」, 「組1」]
要求是類型value
應該是一個字符串數組。我的最終目標是根據字段名稱對值進行分組。
上面的代碼給了我一個結果,當我解析是不正確的結果。
'上面的代碼給我一個結果,當我分析是不正確的result.'這是什麼給你?發佈。 –