Javascript forEach循环 - 如何重建它?

时间:2016-12-13 16:19:02

标签: javascript ruby

在Ruby中,我们可以使用。重建数组的每个循环 1)while循环,2)yield语句(将值传递给一个块),以及3)类Array(使该方法可用于Array类);如下:

docker run --name=elasticsearch -p 9200:9200 -p 9300:9300 -v /data/elk-conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /data/elk-conf/jvm.options:/etc/elasticsearch/jvm.options -d elasticsearch:5.1.1

在Javascript中,我使用类似的方式重建了一个数组的forEach循环;如下:

class Array
    def reconstructed_each
        n = 0
        while n < self.length
            yield(self[n])
            n += 1
        end
        self
    end
end

我不确定的部分是如何使上述功能仅用于数组,而不是其他类型的对象,例如数。

更新:我想通了。上面的代码段已经过相应的编辑。

2 个答案:

答案 0 :(得分:0)

您是否正在寻找使用while-construct迭代javascript数组的方法?

如果是这样的话:

const arr = ["some", "value", "here"];
let i =0;

while(i < arr.length){
 //use contents of arr[i] to do something useful
 i++;
}

也许我错过了什么

答案 1 :(得分:0)

也许你正在寻找像发电机功能这样的东西?

const myArray = [1,2,3,4,5];
function* constructEach(){
  let index = 0;
  while(index < 3)
    yield myArray[index++];
}

var gen = constructEach();

console.log(gen.next().value); // 0
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
console.log(gen.next().value); // undefined

(这个例子是从MDN无耻地偷走的)