var arr1 = [1,2,3,4,5,6,7,8,9];
var arr2= [9,7,4,5,8,2 ];
var arr3= [4,6,5,6,4];
在这之前先了解到这几个属性
val; 自动获取当前元素值
i; 自动获取当前元素的位置
arr; 自动获得当前数组
return;条件
之后的API理需要用到这些属性
1.判断 的API 便利了代码量但是并没有提高程序运行的效率
arr.every():判断数组中每个元素是否都符合要求,只要所有元素符合条件时才为真,只要有一个人元素不符合条件时为假。
和我们逻辑运算符&&类似
arr.some():判断数组中是否有符合要求的元素,只要有一个元素符合条件结果就为真,如所有元素都不符合就为假。
和我们的逻辑运算符||类似
判断数组是否为偶数
function judge (arr){
var array = arr.every(function(val){
return val%2==0;
});
//console.log(array);//测试打桩
return array
}
console.log(
judge(arr1),
judge(arr2),
judge(arr3)
)
join();
目的:将数组转化为字符串.
参数:无or可传一个参数(传超过1个的参数,默认取第一个参数), 参数为字符或字符串,参数将在数组的每个元素的间隔插入。PS: 参数无的时候,数组元素间隔为 ','.
是否改变原数组: 不改变原数组, 返回一个新的字符串.
逆向操作:String.split().
reverse();
目的:将数组中的元素颠倒顺序.
参数:无(无视参数).
是否改变原数组: 改变原来的数组.
sort();
目的:将数组的元素按照一定规则排序.
参数:无or可传一个函数(传超过1个的函数,默认取第一个函数)。PS: 参数无的时候数组元素默认按照字母表顺序排序.
函数参数:
> 你必须给sort()方法传递一个比较函数,所以一般传递俩个参数.PS:第三个参数默认undefined.
> 假设第一个参数应该在前,你应该返回一个小于0的数值,
> 否则,你应该返回一个大于0的数值,
> 假设俩个值相等(也就是说他们的排序无关紧要),函数应该返回0.
> PS:数组元素是从前到后 俩俩比较.
是否改变原数组: 改变原来的数组.
concat();
目的:像胶水一样,将参数粘合在数组后面.
参数:字符串或数组(参数不限)。
> 当参数为数组时,粘合的是数组的元素,而非数组本身.
> 但此方法不会扁平化数组参数(换句话说,如果你的参数是个数组,里面又嵌套了超过1个数组,这个里面的数组的元素不会被提取出来粘合,而是整个数组被粘合在新的数组后面).
是否改变原数组:不改变原数组, 返回一个新的数组.
slice();
目的:返回数组的一个片段或子数组.
参数:无or一个参数or俩个参数
> 无参数将原样返回一个新的数组,相当于复制了一遍数组.
> 返回的数组包含第一个参数指定的位置,到第二个参数前面一个位置之间的所有元素.
> 如果只指定一个参数,返回的数组将包含从开始位置到结尾的所有元素.
> 如果参数中出现负数,它表示相对于数组中的最后一个元素的位置的个数.
是否改变原数组: 不改变原数组, 返回一个新的数组.
splice();
目的:从数组中删除元素、插入元素、或者同时完成这俩种操作.
参数:前俩个参数指定了删除,从第三个参数开始,指定拼接。
> 第二个参数指定了应该从数组中删除元素的个数,若省略,从起始点到数组结尾的所有元素都将被删除.
> 第三个参数开始,指被拼接到原数组的元素,区别于concat(), splice()会插入数组本身而非数组的元素(会扁平化数组)
是否改变原数组: 改变原来的数组.
push()和pop();
目的:向数组中插入或删除元素.
参数:push()方法不限制参数,并不会扁平化数组。pop()方法无视参数.
行为:类似栈,从尾部插入或删除值,push()方法返回数组长度,pop()方法返回被删除的值.
是否改变原数组: 改变原来的数组.
unshift()和shift();
目的:向数组中插入或删除元素.
参数:unshift()方法不限制参数,并不会扁平化数组,当参数为一连串元素时,参数类似于被粘合在数组的头部,而不是改变参数的顺序。shift()方法无视参数.
行为:俩组方法和上面的方法类似,区别在于这组方法是在数据的头部操作.
是否改变原数组: 改变原来的数组.
toString()和toLocaleString();
目的::将数组的每个方法转化为字符串,并且输出用逗号分隔的字符串列表.
参数:俩个方法无视参数.
是否改变原数组: 不改变原数组, 返回一个新的字符串.