Javascript babel obj symbol.迭代器未定义
我正在使用Javascript babel obj symbol.迭代器未定义,javascript,ecmascript-6,babeljs,Javascript,Ecmascript 6,Babeljs,我正在使用ES6编写一个node项目,并使用babel cli编译到ES5,但在ES6上针对of let parseParams = (obj)=> { let string = '' for (var [key,value] of obj) { string += `/${key}/${value}` } console.log(`obj: ${string}`) return string; } 编译js=> for (var _iterator =
ES6
编写一个node
项目,并使用babel cli编译到ES5
,但在ES6上针对of
let parseParams = (obj)=> {
let string = ''
for (var [key,value] of obj) {
string += `/${key}/${value}`
}
console.log(`obj: ${string}`)
return string;
}
编译js=>
for (var _iterator = params[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var _step$value = _slicedToArray(_step.value, 2);
var key = _step$value[0];
var value = _step$value[1];
string += '/' + key + '/' + value;
}
而params[Symbol.iterator]
是未定义的
let params = {
key: 'value'
}
babel server.babel.js -o server.js
我怎样才能解决这个问题,谢谢。引用
for…of语法特定于集合,而不是所有对象。它将以这种方式迭代具有[Symbol.iterator]属性的任何集合的任何元素
params
没有[Symbol.iterator]
属性,因此不能将用于。。。在这里循环
将obj
转换为可编辑类型(例如)
或将用于。。。在
循环中:
for (let prop in obj) {
string += `/${prop}/${obj[prop]}`
}
我真的错过了集合
和地图
。非常感谢
for (let prop in obj) {
string += `/${prop}/${obj[prop]}`
}