Tool functions that return iterables
Mar 29, 2016 · 1 分钟阅读

function objectEntries(obj) {
  let iter = Reflect.ownKeys(obj)[Symbol.iterator]();

  return {
    [Symbol.iterator]() {
      return this;
    },
    
    next() {
      let {
        done,
        value: key
      } = iter.next();

      if (done) {
        return {
          done: true
        };
      }

      return {
        value: [key, obj[key]]
      };
    }
  };
}
const obj = { first: 'Jane', last: 'Doe' };

for (const [key, value] of objectEntries(obj)) {
  console.log(`${key}: ${value}`);
}
// Output:
// first: Jane
// last: Doe

use generators:

function* objectEntries(obj) {
  const propKeys = Reflect.ownKeys(obj);

  for (const propKey of propKeys) {
    yield [propKey, obj[propKey]];
  }
}

see more: Iterables and iterators

← Previous Post Next Post →

Ryun的博客
与其感慨路难行,不如马上出发。

atom css design git html javascript jekyll laravel life mac mobile optimization sublime tool vscode vue
mac

About

你好,❤朋友

这里是 Ryun 的博客 📝

📝记录了我学习 🔎的过程

作为一名前端攻城狮 🦁

希望能和大家一起 🔎

共同进步 🏃

🦁的特长:

  • HTML5
  • CSS3
  • JavaScript
  • Vue.js
  • 微信小程序
  • 熟练配合 Node.js、PHP 和 Laravel
  • 熟练使用各种开发和设计工具

🦁喜欢 🆒🆒的东西

对提升效率和美感的事物有兴趣 😋

欢迎 👏交流


see this hugo-theme-dream-ink