相关疑难解决方法(0)

ES6使用for..of反向迭代一个数组,我错过了规范中的内容吗?

在ES6中,我们现在有迭代器for..of来迭代它们.我们有一些数组内置函数 ; 特别是,条目.

这些方法允许人们执行通常执行的大部分迭代.但是,反向迭代怎么样?这也是一个非常常见的任务,我没有在规范中看到任何具体的内容吗?或许我错过了?

好的,我们有Array.prototype.reverse但是我不一定想要在适当的位置反转大型数组,然后在完成时再次反转它.我也不想使用Array.prototype.slice来制作一个临时的浅拷贝并反转那个迭代.

所以我看了一下发电机并提出了这些有效的解决方案.

(function() {
  'use strict';

  function* reverseKeys(arr) {
    let key = arr.length - 1;

    while (key >= 0) {
      yield key;
      key -= 1;
    }
  }

  function* reverseValues(arr) {
    for (let key of reverseKeys(arr)) {
      yield arr[key];
    }
  }

  function* reverseEntries(arr) {
    for (let key of reverseKeys(arr)) {
      yield [key, arr[key]];
    }
  }

  var …
Run Code Online (Sandbox Code Playgroud)

javascript arrays reverse iterator ecmascript-6

12
推荐指数
1
解决办法
5348
查看次数

标签 统计

arrays ×1

ecmascript-6 ×1

iterator ×1

javascript ×1

reverse ×1