I have an array that I successfully transform into a string format with an EcmaScript-6 function. However, how can I do this using EcmaScript-3? The receiving endpoint requires an ES3 function.
Original array:
formdata: [
1: {name: "gender", value: "F", focus: 0, type: "radio"}
2: {name: "firstname", value: "empty", focus: 0, type: "text"}
3: {name: "lastname", value: "empty", focus: 0, type: "text"}
4: {name: "birthday", value: "empty", focus: 0, type: "text"}
5: {name: "street", value: "empty", focus: 0, type: "text"}
6: {name: "streetNo", value: "empty", focus: 0, type: "text"}
]
Required string format
let formdata = gender.radio|F|0;firstName.text|empty|1;lastName.text|empty|0;street.text|empty|0;houseNumber.text|empty|0;zip.text|empty|0;city.text|empty|0;country.select-one|de|0;birthdate-day.text|empty|0;birthdate-month.text|empty|0;birthdate-year.text|empty|0;email.email|empty|0;code.text|filled_out|0
My working solution with ES6:
let res = formdata.map(({name,value,focus,type}) => `${name}.${type}|${value}|${focus}`).join(';')
My take on converting to ES3:
var res = formdata.map(({name,value,focus,type}) {
("name" + "." + "type" + "|" + "value" + "focus").join(;)
}
This solution is obviously not working and also I am not sure whether it is valid ES3 JavaScript.
Thanks!
mapis added in ES5, so that will obviously create a problem. You can use a simpleforloop to iterate over the array, and create the string.