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