js array对象的迭代方法

1.forEach 该方法接受一个函数作为参数, 对数组中的每个元素
使用该函数  return 语句失效
function square(num) {
print(num, num * num);
}
var nums = [1,2,3,4,5,6,7,8,9,10];
nums.forEach(square);

2.every 该方法接受一个返回值为布尔类型的函数, 对数组中的每
个元素使用该函数。 如果对于所有的元素, 该函数均返回 true, 则该方法返回 true。 下面
是一个例子://可以理解为数学上与的关系。都满足才返回true。
function isEven(num) {
return num % 2 == 0;
} v
ar nums = [2,4,6,8,10];
var even = nums.every(isEven);
if (even) {
print("all numbers are even");
} e
lse {
print("not all numbers are even");
}

3.some 它相当于数学上的或,有一个满足则返回true否则返回false。 该方法也接受一个返回值为布尔类型的函数, 只要有一个元素使得该函数返回 true,
该方法就返回 true。

function isEven(num) {
return num % 2 == 0;
}
var nums = [1,2,3,4,5,6,7,8,9,10];
var someEven = nums.some(isEven);
if (someEven) {
print("some numbers are even");
}
else {
print("no numbers are even");
}

4.reduce() 方法接受一个函数, 返回一个值。 该方法会从一个累加值开始, 不断对累加值和
数组中的后续元素调用该函数, 直到数组中的最后一个元素, 最后返回得到的累加值。

function add(runningTotal, currentValue) {
return runningTotal + currentValue;
} v
ar nums = [1,2,3,4,5,6,7,8,9,10];
var sum = nums.reduce(add);
print(sum); // 显示 55


reduce() 方法也可以用来将数组中的元素连接成一个长的字符串:

function concat(accumulatedString, item) {
return accumulatedString + item;
} 
var words = ["the ", "quick ","brown ", "fox "];
var sentence = words.reduce(concat);
print(sentence); // 显示 "the quick brown fox"


reduceRight() 方法, 和 reduce() 方法不同, 它是从右到左执行.
5.map().两个迭代器方法可以产生新数组: map() 和 filter()。 map() 和 forEach() 有点儿像, 对数组中的每个元素使用某个函数。 两者的区别是 map() 返回一个新的数组, 该数组的元素是对原有元素应用某个函数得到的结果。
function curve(grade) {
return grade += 5;
}
var grades = [77, 65, 81, 92, 83];
var newgrades = grades.map(curve);
print(newgrades); // 82, 70, 86, 97, 88

or

function first(word) {
return word[0];
} v
ar words = ["for","your","information"];
var acronym = words.map(first);
print(acronym.join("")); // 显示 "fyi"

你可能感兴趣的:(array)