我有以下控制器方法:
const org = await organisation.toJSON().name;
// The next line works fine, that's not the problem
const users = await organisation.getUsers(organisation.toJSON().id, User);
await Promise.all(users.forEach(async user => {
await sendAccountEmail(
user.email,
user.surname,
var someString = new String('hi');
someString[Symbol.iterator] = function() {
return { // this is the iterator object, returning a single element, the string "bye"
next: function() {
if (this._first) {
this._first = false;
return { value: 'bye', d
我在网上找到了一些密码。我已经将原始代码压缩到这个小片段中,当运行时,会将1-20打印到控制台。
var NumbersFromOne = {
*[Symbol.iterator] () {
for (let i = 1;; ++i) yield i;
}
};
var take = function* (numberToTake, iterable) {
let remaining = numberToTake;
for (let value of NumbersFromOne) {
if (remaining-- <= 0) break;
我知道ES5对象键是字符串类型的。如果我为对象键指定了其他任何内容,例如,它将被转换为string:
var o = {}
var f = function() {}
// `toString` method is called on f
o[f]= 3
文章我看到Symbol.iterator被用作键:
let iterable = {
[Symbol.iterator]() {
let step = 0;
let iterator = {
next() {
if (step <= 2) {
我想设置options[Symbol.iterator]属性,以便迭代我用for...of语句创建的简单对象:
options = {
male: 'John',
female: 'Gina',
rel: 'Love'
};
for(let p of options){
console.log(`Property ${p}`);
};
但是,这段代码给出了以下错误:
array.html:72 Uncaught TypeError: options[Symbol.iterator] is not a function
我如何
下面是我检查过的JavaScript运行时(Node.js和火狐)的工作原理:
let xs = [0, 1, 2]
let it = xs[Symbol.iterator]()
for (let x of it) console.log(x)
这是因为it迭代器本身是可迭代的,也就是说它具有Symbol.iterator属性。可以假定这是因为Array.prototype[Symbol.iterator]是作为生成器实现的。
我的问题是,我是否可以依赖于it是可迭代的?也就是说,这是规格要求吗?
我已经看过了(我认为是相关的部分),我找不到任何东西表明数组迭代器应该是可迭代的,或者它必须用生
最近,我意识到ES6迭代器求助于JS数组。我搜索过它,但仍然对它的设计哲学感到困惑,因为其他方法仍然没有问题。
另一方面,我被告知不要使用它!
var arr = ['w', 'y', 'k', 'o', 'p'];
var eArr = arr[Symbol.iterator]();
// your browser must support for..of loop
// and let-scoped variables in for loops
for (let letter of eArr) {
co
以下代码
a = {
b () {return 3;},
[Symbol.iterator] () {return 4;}
};
console.log (a ['b']);
console.log (a [Symbol.iterator]);
console.log (111);
for (var attrib in a) {
console.log (attrib);
console.log (a [attrib]);
}
console.log (222);
版画
function b() {return 3;}
function ()
class List{
constructor(){
this.data = [1,2,3];
}
[Symbol.iterator](){
return this.data;
}
}
let list = new List();
for(let i of list)
console.log(i);
for()行中的错误:
Uncaught TypeError: undefined is not a function
因此,不可能在我们自己的类中使用迭代器,比如在PHP中?
我如何在JavaScript中定义一个集合对象,它的行为类似于一个数组,因为它通过数字索引操作符提供对其项的访问?我想允许这样的代码:
// Create new object, already done
let collection = new MyCollection();
// Add items, already done
collection.append("a");
collection.append("b");
// Get number of items, already done
console.log(collection.length)
打字稿给了TypeError: object null is not iterable (cannot read property Symbol(Symbol.iterator))
let [ , num ] = hiResNum.toString().match(/^([+-]?[0-9]+[.]?[0-9]*)(e[+-]?[0-9]+)?$/);
num = parseFloat(num).toFixed(digits);
让num:任何类型的'RegExpMatchArray \ null‘都必须有返回iterator.ts(2488)的'Symbol.iterator
在组件的生存期内,我使用useRef来保持对支柱呈现的引用,但我似乎无法通过这种类型的错误:
Type 'MutableRefObject<any>' must have a 'symbol.iterator()' method that returns an iterator.
我的代码是:
const [values, setValues] = useRef<any[]>([])
最初,我使用一个接口来代替任何,但在故障排除过程中更改为任何,但仍然无法工作。我把空数组作为初始值。不知道我在这里需要做什么,请告诉我。