Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JavaScript ES6函数转换为ES3_Javascript_Arrays_Ecmascript 6 - Fatal编程技术网

将JavaScript ES6函数转换为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

我有一个数组,我使用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 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补充
  • .join(;)
    不是有效的JavaScript
    .join(“;”)
  • ES6中引入了解构语法
  • .map
    是在ES5中引入的
  • 你还需要一个“|”
因此:

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;iconsole.log(str)
使用Babel.js将ES6转换为旧版本。ES5中添加了
map
,因此这显然会产生问题。您可以使用一个简单的
for
循环来迭代数组,并创建字符串。原始数组不是有效的JavaScript。“必需的字符串格式”和ES3版本也是如此。