【发布时间】:2019-04-04 05:08:31
【问题描述】:
我有一个使用 EcmaScript-6 函数成功转换为字符串格式的数组。但是,我怎样才能使用 EcmaScript-3 做到这一点?接收端点需要 ES3 函数。
原始数组:
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"}
]
必需的字符串格式
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
我使用 ES6 的工作解决方案:
let res = formdata.map(({name,value,focus,type}) => `${name}.${type}|${value}|${focus}`).join(';')
我对转换为 ES3 的看法:
var res = formdata.map(({name,value,focus,type}) {
("name" + "." + "type" + "|" + "value" + "focus").join(;)
}
这个解决方案显然不起作用,我也不确定它是否是有效的 ES3 JavaScript。
谢谢!
【问题讨论】:
-
使用 Babel.js 将 ES6 转换为旧版本。
-
map是在 ES5 中添加的,所以这显然会产生问题。您可以使用简单的for循环来遍历数组,并创建字符串。 -
您的原始数组不是有效的 JavaScript。也不是“必需的字符串格式”和 ES3 版本。
标签: javascript arrays ecmascript-6