如何让不支持遍历的数据可遍历

news/2024/7/4 23:29:35
    let authors = {
		allAuthors:{
			fiction:["周","吴","郑"],
			scienceFiction:["王赵","钱孙","冯陈"],
			fantasy:["蒋沈韩杨","朱秦尤许","何吕施张"]
		},
		addres:[]
	}
	authors[Symbol.iterator] = function () {  // 自定义遍历器
		let allAuthors = this.allAuthors // this 指向的是 authors 
		let keys = Reflect.ownKeys(allAuthors) // 获取key  fiction fiction fantasy
		let values = []
		return {  // 格式如此 必须要有
			next(){ 
				if(!values.length){
					if(keys.length){
						values = allAuthors[keys[0]]
						keys.shift()
					}
				}
				return{
					done:!values.length, // 布尔值  false结束
					value:values.shift()    // value的值自定义
				}
			}
		}
	}
	let r = []
	for(let v in authors){
		r.push(v)
	}
	console.log(r)


http://www.niftyadmin.cn/n/3655747.html

相关文章

嵌入式组态环境升级及XML反序列化慢的困惑

嵌入式组态开发比较顺利,V1.0α版本已经推出,再过几天应该推出V1.0β了。但是目前该组态有一个很大的问题,就是XML反序列化较慢,在上位机(PC)不是很明显,大约1~3秒就可以反序列化完毕…

3.7打卡 iincludes数组查询math.pow简写** 和promise语法糖async/await

1, includes 对数组进行查询 返回结果 true / false 2. Math.pow(4, 3); 数值,表示 x 的 y 次幂 (xy) 的值。 简写 ** 两个星号 比promise 跟优雅的异步方式 async function firstAsync(){let promise new Promise((resolve, reject) > {setTimeout(function …

VS2005 IDE开发环境两个不好的特性

用VS2005开发程序几个月来,感觉有两个地方很不方便,不知道是VS2005开发人员考虑不周,还是我不知道如何使用或调整。第一个:在多个控件选定的时候,默认当前选定的控件仅是第一次选定的控件,此外不能更改。不…

用EasyHMI做的工程示例一览

最近又开发不少图元,目前已经变得非常实用,至少我们公司的工程项目,都可以用该组态完成监控界面了,下面是几张效果图。 1、开发环境下的配水系统2、模拟运行下的配料系统3、模拟运行下的化工车间

Object快速遍历的方法

1.object.keys(data) // 返回一个数组 包含所有的key 2. object.values(data) // 返回一个数组 包含所有的value 3. 利用for( let [k,v] of Object.entries(data)) //遍历对象 得到 k,v

WinCE平台下C#引用API(GDI)一个值得警惕的内存泄漏

由于C#精简框架集绘图函数不支持圆角矩形,所以引用了相关的API。[DllImport("//windows//coredll.dll", EntryPoint "RoundRect")] private static extern int CeRoundRect(IntPtr hdc, int X1, int Y1, int X2, int Y2, in…

Object.getOwnPropertyDescriptors(data)获取描述符

Object.getOwnPropertyDescriptors(data) 获取objcet 对象所有数据的描述符 Object.getOwnPropertyDescriptor(data,“key”) 获取单个数据的描述符 该方法允许对一个属性的描述进行检索。在 Javascript 中, 属性 由一个字符串类型的“名字”&#xff0…

WinCE 4.2(.net精简框架集)下的图形双缓存处理

在上位机Windows操作平台( .net 2.0框架集)下实现图形双缓存有很多办法,每种办法在上位机都有很好的效果,但是很不幸,在WinCE4.2操作系统(.net 2.0精简框架集)下这些方法要么不支持,…