Shu*_*til 0 javascript typescript angular angular9
我需要在每个函数调用中从数组的数组中迭代下一个值。
forex:如果我有一个数组的数组
const Arr = [ ['1','2', '3'], ['11','12', '13'], ['11','22', '33'],]
Run Code Online (Sandbox Code Playgroud)
我有一个函数
getNumber(id: number): string {
let n;
for(const i in Arr) {
for(const j in Arr[i]{
n = j;
}
}
return n;
}
Run Code Online (Sandbox Code Playgroud)
我在这里需要多次调用该函数,但每次它都应该返回下一个数字
let i = 4;
for(let j=0; j<=i; j++) {
const g = {
number: this.getNumber(i); //this i means id
}
}
Run Code Online (Sandbox Code Playgroud)
调用函数后,它会像这样返回
'1'
'2'
'3'
'11'
'12'
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题
您可以使用生成器在每次调用该函数时获取下一个值。
要将多维数组转换为平面数组,可以使用Array.flat()方法。
const Arr = [ ['1','2', '3'], ['11','12', '13'], ['11','22', '33'],];
function* getNumber(arr) {
for(const num of arr) {
yield num;
}
}
const gen = getNumber(Arr.flat());
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next().value);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1264 次 |
| 最近记录: |