可能重复:
基本阵列构造的功能方法
我是 js 新手。我只想知道哪种方法是正确的。下面我发布了我的代码。
var doubles = (i*20 for (i in it));
var doubles ={i*20 for (i in it)};
谢谢
可能重复:
基本阵列构造的功能方法
我是 js 新手。我只想知道哪种方法是正确的。下面我发布了我的代码。
var doubles = (i*20 for (i in it));
var doubles ={i*20 for (i in it)};
谢谢
遍历数组时应该使用普通的 for循环。for...in用于迭代对象属性。
所以,正确的做法是:
for (var i = 0; i < array.length; ++i) {
// do something
}
迭代对象属性:
for (var prop in obj) {
// do something with prop
}
假设it
是一个数组,您可以使用.map()
:
var doubles = it.map(function(i){ return i*20; });
此外,您可能想看看如何在 JavaScript 中编写列表/数组推导式
假设您想使用 Mozilla 的Generator 表达式(其中it
是现有的Iterator
),您需要使用方括号:
var twentyfolds = [i*20 for (i in it)];
为了将来参考,ECMAScript 6(又名 Harmony)很可能会引入一种新的、健全的迭代对象(包括数组)的方法:
for(var x of array) {
// do something with x
}
var arr = [1, 2, 3];
console.log([i*20 for (i of arr)])
这两个选项都是语法错误。如果 'it' 是一个列表,那么您可以使用 for 循环或 forEach 方法遍历它。但是,在您的情况下,您似乎真的在寻找 map 方法。
var doubles = it.map(function (i) { return i * 20; });