数组五个迭代方法:
forEach():没有返回值,只是针对每个数组项调用指定的函数(callbackfn)
every(): 返回一个布尔值(true或false),判断每个数组项是否符合指定函数的条件,符合为true,反之为false
some(): 返回一个布尔值(true或false),判断每个数组项是否符合指定函数的条件,只要有任何一项返回为true,就会返回true
filter(): 每个数组项调用指定的函数,条件为true的将返到一个新数组中
var arr = [1,2,3]
var arr_new= that.tag.filter(item => {
return item != 1;
});
arr_new //[2,3]
map(): 每个数组项调用指定的函数,返回每次函数调用的结果组成一个新数组
var arr = [1,2,3]
var arr_new= arr.map(item => {
return item+1;
});
arr_new //[2,3,4]
这五个数组迭代的方法中,其中forEach()、every()和some()方法不生成一个新数组,而filter()和map()方法将会生成一个新数组(符合条件)。
数组合并:
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
var arr1 = [1,2];
var arr2 =[3,4];
var arr3 =[5,6];
var arr_new1= arr1.concat(arr2);
var arr_new2= arr1.concat(arr2,arr3);
arr_new1//[1,2,3,4]
arr_new2//[1,2,3,4,5,6]
从数组创建字符串
join() 方法用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的。
var arr =[110,112,119]
console.log(arr.join())//"110,112,119"
默认以逗号分割
console.log(arr.join('+'))//"110+112+119"
也可自定义分隔符
数组删除与清空
delete方法
这种方式数组长度不变
var arr = [22,33,44,55];
delete arr[1];
这种方式数组长度不变,此时arr[1]变为undefined了
splice方法
这种方式数组长度相应改变,但是原来的数组索引也相应改变
splice参数中第一个1,是删除的起始索引(从0算起), 第二个元素是删除元素的个数
var ary = [1,2,3,4];
ary.splice(0,ary.length);//清空数组
console.log(ary); // 输出 [],空数组,即被清空了
var ary = [11,22,33,44];
ary.splice(0,1);//删除数组中11
或 ary.splice($.inArray(11, ary), 1);
其中$.inArray(2, ary)用来查找某元素在数组中的索引位置。
splice方法在删除数组元素的同时,还可以新增入数组元素
比如arr.splice(1,1,55,66),55,66两个元素就被加入数组arr了