У меня есть этот массив, который я беру из функции serializeArray()
, и я хочу передать этот ключ / значения конкретному c js объекту.
У меня есть этот результат из $("selector :pseudoSelector").serializeArray()
и дает мне это:
[
{
"name": "Address",
"value": "Calle pizzarro 56"
},
{
"name": "1",
"value": "83"
},
{
"name": "3",
"value": "340"
},
{
"name": "5",
"value": "340"
},
{
"name": "7",
"value": "hi how are you?"
},
{
"name": "latitud",
"value": "87798"
},
{
"name": "longitude",
"value": "-8,208914"
}
]
Затем я хочу преобразовать эти данные в объект, подобный этому:
{
"id": 0, //this id is the last id on this list plus 1(so first is 0 next one 1 and so on..)
"address": "Calle pizzarro 56",
"appliesOn": 1, // also default value so dont worry
"areas": [
{
"id": 83,
"areaLevelId": 1,
"name": "Portugal",
"areaPosition": null,
"parentAreas": [],
"childAreas": []
},
{
"id": 340,
"areaLevelId": 3,
"name": "Algarve",
"areaPosition": null,
"parentAreas": [],
"childAreas": []
},
{
"id": 340,
"areaLevelId": 5,
"name": "Albufeira",
"areaPosition": null,
"parentAreas": [],
"childAreas": []
},
{
"id": 12485,
"areaLevelId": 7,
"name": "hi how are you?",
"areaPosition": {
"latitude": 234,
"longitude":79879
},
"parentAreas": [],
"childAreas": []
}
],
"recordStatus": 1 //it handles by other way so for now 1 is ok
}
Проблема это с областями, когда имя == 1 значение переходит в areaLevelId
= 1 и так далее. Когда areaLevelId
= 7, возникает исключение, он принимает latitude
и longitude
и создает массив с этим. Что я делал до сих пор, так это:
function objectifyForm(fields) {
var returnArray = {};
returnArray["areas"] = [];
jQuery.each(fields, function (i, field) {
if (!isNaN(field.name) && field.value != "") {
returnArray["areas"].push({
"id": (field.value.toLowerCase()),
"areaLevelId": (field.name)
})
} else if (field.name == "latitud" && field.name == "longitude") {
//returnArray["areas"][3].push({
// returnArray["areas"]["areaPosition"] = [];
//})
} else {
returnArray[field.name.toLowerCase()] = field.value + "";
}
});
return returnArray;
}
Но это неправильно, потому что я не уверен, как продолжать идти. В первый раз я сделал что-то вроде;
1) взять значения из формы с помощью serializeArray()
2) затем создать функцию, которая помещает эту информацию в объект с конкретной формой.
3) pu sh этот массив в глобальный массив
pd: parentAreas, childAreas всегда пусто , а areaPosition имеет latitude
и longitude
при areaLevelId == 7
Как Я мог бы достичь этого, большое спасибо в продвинутом.