将JavaScript ES6函数转换为ES3
我有一个数组,我使用EcmaScript-6函数成功地将其转换为字符串格式。但是,如何使用EcmaScript-3实现这一点?接收端点需要ES3函数 原始数组:将JavaScript ES6函数转换为ES3,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,我有一个数组,我使用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", val
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 res = formdata.map(({name,value,focus,type}) => `${name}.${type}|${value}|${focus}`).join(';')
所需字符串格式
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工作解决方案:
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 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(;)
}
这个解决方案显然不起作用,而且我也不确定它是否是有效的ES3JavaScript
谢谢 您尝试ES3时遇到的问题:
- arrow函数缺少arrow,但也是对语法的ES6补充
不是有效的JavaScript.join(;)
是.join(“;”)
- ES6中引入了解构语法
是在ES5中引入的.map
- 你还需要一个“|”
var formdata=[{name:“gender”,value:“F”,focus:0,type:“radio”},{name:“firstname”,value:“empty”,focus:0,name:“lastname”,value:“empty”,focus:0,type:“text”},{name:“street”,value:“empty”,focus:0,type:“text”},{name:“streetNo”,value:“empty”,焦点:0,键入:“text”},];
var-arr=[];
对于(var i=0;i console.log(str)
使用Babel.js将ES6转换为旧版本。ES5中添加了map
,因此这显然会产生问题。您可以使用一个简单的for
循环来迭代数组,并创建字符串。原始数组不是有效的JavaScript。“必需的字符串格式”和ES3版本也是如此。