Object value iterator:值迭代器
生活随笔
收集整理的這篇文章主要介紹了
Object value iterator:值迭代器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 // ES5
2 // 對于數組,使用標準的 for 循環,其實這種方式并不是在遍歷值,而是遍歷下標來指向值!ES5中增加了一些數組迭代器:forEach、every、some
3 // forEach:遍歷數組中的所有值并忽略回調函數的返回值
4 // every:一直運行直到回調函數返回 false
5 // some:一直運行直到回調函數返回 true
6 // 對于對象, for..in 循環實際上遍歷的是對象的可枚舉屬性列表(包括原型鏈)需要手動獲取屬性值
7 // 手動實現一個類似內置迭代器的 @@iterator
8 var myObject = {
9 a: 2,
10 b: 3
11 };
12
13 Object.defineProperty( myObject, Symbol.iterator, {
14 enumerable: false,
15 writable: false,
16 configurable: true,
17 value: function() {
18 var o = this;
19 var idx = 0;
20 var ks = Object.keys( o );
21
22 return {
23 next: function() {
24 return {
25 value: o[ks[idx++]],
26 done: (idx > ks.length)
27 };
28 }
29 };
30 }
31 } );
32
33 // 手動遍歷 myObject
34 var it = myObject[Symbol.iterator]();
35
36 console.log(it.next()); // { done: false, value: 2 }
37 console.log(it.next()); // { done: false, value: 3 }
38 console.log(it.next()); // { done: true, value: undefined }
39
40 // ES6
41 // 使用 for..of 遍歷數據結構(數組、對象等等)中的值,它會使用內置的 @@iterator 對象并調用它的 next 方法來遍歷數據值
42 for (var v of myObject) {
43 console.log(v);
44 }
?
轉載于:https://www.cnblogs.com/kuangliu/p/6376721.html
總結
以上是生活随笔為你收集整理的Object value iterator:值迭代器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编基础入门知识
- 下一篇: 56 - II. 数组中数字出现的次数