二.Loops & Iteration

every()方法

  • 测试数组中所有元素是否都通过指定函数的测试,若有一项返回false即返回false;

  • every方法为数组的每个元素执行一次callback函数(不包括通过某些方法删除或者未定义的项,值定义为undefined的项除外),直到找到一个使callback返回false(可转化为false的值),跳出迭代并返回false。否则(所有元素则返回true)返回true。

  • 语法:

array.every(function(currentValue,index,arr), thisValue)
  • 例子:
function isBigEnough(element){
  return (element >=10);
}
var passed = [12, 5, 8, 130, 44].every(isBigEnough);
// passed is false
passed = [12, 54, 18, 130, 44].every(isBigEnough);
// passed is true

filter()方法

  • 使用指定的函数测试所有的元素,创建并返回一个包含所有通过测试的元素的新数组。

  • filter为数组中的每个元素调用一次callback(不包括通过某些方法删除或者未定义的项,值定义为undefined的项除外),并利用有callback返回true或等价于true的元素创建一个新数组,未通过callback测试的元素会被跳过,不会包含在新数组里。

var a = [1, 2, 3, 7,4].filter(function(value){
   return value > 4      
})
console.log(a)//[7]

forEach()方法

  • forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
function logArrayElements(element, index, array) {
    console.log("a[" + index + "] = " + element);
}

[2, 5, 4,9].forEach(logArrayElements);

// a[0] = 2
// a[1] = 5
// a[2] = 4
// a[3] = 9

map()方法

  • 为数组每一项执行一个指定函数,返回一个新数组,每个元素都是回调函数的结果。
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
/* roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9] */

some()方法

  • 若有一项返回true即返回true。
var a = [1, 2, 3, 7,4].some (function(value){
   return value > 8       
})
console.log(a)//false
a = [1, 2, 3, 9,4].some (function(value){
   return value > 8       
})
console.log(a)//true

for循环

for( var index = 0; index < array.length; i ++){} 

for-in循环

var obj = {a:1, b:2, c:3};
for (var prop in obj) {
console.log("obj." + prop + " = " + obj[prop]);
}
// 输出:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"

for-of循环

  • ES6里引入了一种新的循环方法,它就是for-of循环,它既比传统的for循环简洁,同时弥补了forEach和for-in循环的短板。
let iterable = [10, 20, 30];
for (let value of iterable) {
console.log(value);
}
// 10
// 20
// 30

你可能感兴趣的:(二.Loops & Iteration)