some(); 返回一个布尔值。判断数组中所有元素是否存在满足条件的,如果遇到一次满足则不再继续判断,直接返回true,否则返回false。经常用来写条件,如if ( arr.some( function ( t ) { return t >5 } )) { 满足条件时执行的语句块 } 指判断数组中是否有大于5的值。
查询对象型数组中是否有满足条件的元素
<script>
var data=[
{id:1001,name:"餐饮1",num:1,price:10},
{id:1002,name:"餐饮2",num:1,price:20},
{id:1003,name:"餐饮3",num:1,price:30},
{id:1004,name:"餐饮4",num:1,price:40},
{id:1005,name:"餐饮5",num:1,price:50},
{id:1006,name:"餐饮6",num:1,price:60},
{id:1007,name:"餐饮7",num:1,price:70},
{id:1008,name:"餐饮8",num:1,price:80},
{id:1009,name:"餐饮9",num:1,price:90},
];
if(data.some(function (t){ return t.id===1005})){
console.log("有");
}
console.log(data);
</script>
every(); 返回一个布尔值。对数组的每个元素判断是否满足条件,如果有一个不满足条件就返回为false,全部满足时则返回true
filter(); 返回一个数组。常用于购物车中,如判断数组中每个元素是否都被选中
if ( data.length===data.filter(function (t) { return t.selected }).length ) { }
reduce(); 有两个参数。第一个参数是function()(function(sum,item,index)里又有三个参数),第二个参数是initValue初始值,如果设置这个初始值,index就从0开始。
实例就是真实的例子。如arr.sort();这个arr就是真实的数组。而Array.isArray();这个Array就是类名,即类别的名字。
Array.prototype.slice.call(div); //指将非数组或类数组转化为数组,ES5中
Array.from(div); //也是将类数组转化为数组,ES6中。
比较最大值,不限制比较个数。
<script>
function max(){
//arguments是函数中都可以获取到的,是参数集合
var arr=Array.from(arguments); //Array.form用于将非数组转化为数组
return arr.reduce(function(p1,p2){ //reduce的function中有两个参数时第一个指头部元素,第二个p2指头部的下一个的元素
return p1>p2? p1 : p2; //比较p1和p2返回最大者,比较完了接着拿max和下一个元素比较再返回最大者...
});
}
console.log(max(2,8,5,55,6)); //任意输入需要比较的数
</script>
arguments.callee 当前执行的函数
arguments.callee.caller 回调当前函数的父级函数
参数?
函数里面的参数实参都必须对应填写,宁愿填写为undefined、null也不能留空。
参数如果写在所有参数的最前面,那就是必要参数。
ES5中所有的参数一般都需按位填写,如果没有填写,就会变成undefined。
多填入的参数不会被直接获取到。
可尝试轮播图。
二维数组?
常用于拼图游戏,2D游戏,贪吃蛇,坦克大战,都是平面二维表格。