Heim > Fragen und Antworten > Hauptteil
Chestnut:
var a = {'1':'gg','2':'love','4':'meimei',length:5};
var arr=[...a];
console .log(arr);
Unter Google Chrome gemeldeter Fehler: Uncaught TypeError: a[Symbol.iterator] ist keine Funktion
Definition von array-like:/a/11...
Javascript-Einführungsdokumentation zu „...“: https://developer.mozilla.org...
In der offiziellen JavaScript-Dokumentation heißt es, dass „...“ ein Klassenarray in ein Array konvertieren kann. Warum wird immer noch ein Fehler gemeldet? verwechseln!
伊谢尔伦2017-06-30 09:57:43
你发的文章,自己也要先看清楚呀。
之所以成为“类数组”,就是因为和“数组”类似。不能直接使用数组方法,但你可以像使用数组那样,使用类数组。
不可以直接使用数组方法,你这个扩展语句不就是 直接使用了么?
你需要先把类数组转化成数组,可以使用文章中介绍的 Array.prototype.slice.call(arguments)
ES6 也有个方法,Array.from(arrayLike)
習慣沉默2017-06-30 09:57:43
请用 Array.from()
如果你看英文的页面就会发现展开对象需要是可遍历的
Only for iterables
Spread syntax can be applied only to iterable objects:
var obj = {'key1': 'value1'}; var array = [...obj]; // TypeError: obj is not iterable