我如何通过一个序列中的所有输入,使用JavaScript?
当前回答
在 jQuery 中,有三种实施。
var a = [3,2];
$(a).each(function(){console.log(this.valueOf())}); //Method 1
$.each(a, function(){console.log(this.valueOf())}); //Method 2
$.each($(a), function(){console.log(this.valueOf())}); //Method 3
其他回答
现在一个简单的解决方案是使用 underscore.js 图书馆,它提供了许多有用的工具,如每一个,并将自动将工作分配给原住民的Each 如果可用。
一个CodePen的例子,它是如何工作:
var arr = ["elemA", "elemB", "elemC"];
_.each(arr, function(elem, index, ar)
{
...
});
看也
在 for_each...in(MDN)中,它解释说,对于每个(对象变量)是作为ECMA-357(EAX)标准的一部分,而对于(MDN)来说,它描述了使用(对象变量)为(对象变量)作为和谐(ECMAScript 6)提议的一部分的下一个方法。
我来自Python,我发现这种方式更清晰。
theArray 是 array,例子是 array 的元素:
for (let instance of theArray)
{
console.log("The instance", instance);
}
或
for (instance in theArray)
{
console.log("The instance", instance);
}
与比较:
theArray.forEach(function(instance) {
console.log(instance);
});
但是,在一天结束时,两人都在做同样的事情。
如果你想通过一系列用箭函数的对象旋转:
let arr = [{name:'john', age:50}, {name:'clark', age:19}, {name:'mohan', age:26}]; arr.forEach((person)=>{ console.log('I am ' + person.name + ' and I am ' + person.age + ' old'); })
如果您正在使用 jQuery 图书馆,您可以使用 jQuery.each:
$.each(yourArray, function(index, value) {
// do your stuff here
});
编辑:
作为一个问题,用户想要代码在JavaScript而不是jquery,所以编辑是
var length = yourArray.length;
for (var i = 0; i < length; i++) {
// Do something with yourArray[i].
}
Iterators 提高效率,让您同时消耗列表中的物品,就好像它们是流。 使 iterator 特别的是它通过收藏的方式. 其他插槽需要将整个收藏上传到前面,以便在收藏中进行 iterate,而 iterator 只需要知道收藏中的当前位置。
您可以通过呼叫 iterator 的下一个方法访问当前项目,下一个方法将返回当前项目的值,并将一个 boolean 指示您到达收藏结束时。
您也可以使用 Symbol.iterator 将您的常规序列转换为 iterator 如下:
您也可以将您的常规序列转换为这样的 iterator:
注意事项:
对象不默认可用,在这种情况下使用为..in,因为而不是值,它用钥匙工作。