数组Array
//数组构建
var arr = new Array(4); //4是数组长度
var arr = new Array(1,2,3,4); //如果参数有两个或两个以上,那么第一个元素则是arr[0]的值。
//如果数组的第一个参数不是数值类型,且只有一个,也是作为数组的arr[0]的值。
var arr = [1, 2, 3, 4, 5];
console.log(arr.length); // 5
arr.length = 20; //数组长度可以修改/设置
arr.length = 0; //表示清空数组
//如果数组长度小于原数组的长度,意味着数组从0位截取到指定位置
arr[arr.length] = number; //意味着在数组尾部添加一个数字
arr[arr.length-1] = number; //意味着在数组末尾替换一个数字
//遍历数组
for(var i = 0; i < arr.length; i++)
console.log(arr[i]);
for(var i in arr)
console.log(arr[i]);
//使用for语句循环数组,只能循环数组的每个元素(主要使用for循环数组)
//使用for in 循环,不但可以循环数组每个元素,还可以循环到他的属性。(使用for in 循环对象)
//数组中标识元素所在的位置,叫做数组的下标或者索引
//数组中标识元素的内容,arr[0]为下标变量
//数组添加元素
var arr=[-2,-1,0,1,2,3,4,5];
var len=arr.push();//返回数组的新长度
len=arr.push(6);//[1,2,3,4,5,6],6;
var len=arr.push(6,7,8);//[1,2,3,4,5,6,7,8],8;
var len=arr.push([6,7,8]);//[1,2,3,4,5,[6,7,8]],6;
var len=arr.unshift();
var len=arr.unshift(0);
var len=arr.unshift(-2,-1,0); //减少使用unshift
//数组删除元素
//删除数组尾部的元素
var t=arr.pop();//返回被删除的元素
console.log(t);
/var arr1=[];
var t;
while (t=arr.pop()){
arr1.push(t);
}
console.log(arr1,arr);/
//删除数组的头部元素
var t=arr.shift();//返回被删除的元素
//将数组转换成为字符串join
console.log(arr.join());//arr.toString()相同
console.log(arr.join("#"));//设置一个符号,用这个符号链接数组的每个元素,形成新字符串
console.log(arr.join(""));//元素紧密相连
//数组连接concat
var arr1=arr.concat();//没有参数时,是复制数组
arr[0]=10;
var arr1=arr.concat(5,6);//将arr数组链接,5,6两个元素,形成新数组,原数组不变
var arr1=arr.concat([5,6,7]);//将arr数组和数组[5,6,7]合并形成新数组
var arr2=[7,8,9];
var arr1=arr.concat(arr2);//将两个数组链接形成新数组
console.log(arr1,arr);
splice
var arr = [1,2,3,4,5];
arr.splice(); //数组插入,删除,替换元素,并且返回被删除元素组合的新数组
arr.splice(); //创建一个新的空数组返回
var arr1 = arr.splice(3); //从下标是3开始删除到尾部
var arr2 = arr.splice(0); //将arr的所有元素导入到arr2中,清空arr
console.log(arr2);
var arr3 = arr.splice(0,2); //从下标为0的位置开始删除两个元素
var arr4 = arr.splice(0,0,-1); //在第0位插入一个-1
var arr5 = arr.splice(-1,0,-1); //第-1位(倒数第一位)插入一个-1
var arr6 = arr.splice(arr.length, 0, -1); //在尾部插入一个-1
var arr7 = arr.splice(1,2,-1,-2); //从第一位开始替换两个元素-1,-2
//slice 数组截取元素,返回被截取的新元素,原数组不改变
var arr2 = arr.slice(); //复制arr的所有元素给arr2,没有引用关系
var arr3 = arr.slice(0); //同上
var arr4 = arr.slice(3); //将数组从下标3开始到结尾,截取形成新数组
var arr5 = arr.slice(-2); //从倒数第二位开始截取
var arr6 = arr.slice(3,4); //从下标3开始到4结束截取
var arr7 = arr.slice(-2,-1); //从下标倒数第二位开始到倒数第一位结束截取
indexOf()
var arr = [1,2,3,4,5];
arr.indexOf(); //在数组中查找元素,可以根据第二个参数的起始位置开始查找,返回查找到元素的下标,如果没有找到,返回-1
arr.indexOf(2,2) //从下标2开始向后查找2
arr.indexOf(2); //从头查找6
var arr = [1,2,3,2,3,5,4,2,9,2];
var index = -1;
while(arr.indexOf(2,index+1) > -1){ //查找数组中所以2的索引位置
index = arr.indexOf(2,index+1);
console.log(index)
}
lastIndexOf() //从后向前搜索,查找元素的下标
//arr.some
var arr=[1,2,4,6,7,8,5,9];
//判断所有元素是否有满足该条件的,
//如果遇到一次满足则不再继续判断,直接返回true,否则返回false
var bool=arr.some(function (t) {
return t>10;
});
console.log(bool);
//判断数组中是否有大于5的值
if(arr.some(function (t) { return t>5 })){
}
//判断数组中每一个是否满足条件,如果全部都满足,就返回true,否则返回false
var bool=arr.every(function (t) {
return t>0;
});
console.log(bool);
var arr1=arr.filter(function (t) {
t++;
return t>5;//返回的任然是原元素
});
console.log(arr1,arr);
查询对象型数组中是否有符合条件的数组
//判断数据中是否有id为1005的元素
if(data.some(function (t) { return t.id===1005 })){
console.log("有");
}
判断数组中每一个是否满足条件,如果全部都满足,就返回true,否则返回false
var bool=arr.every(function (t) {
return t>0;
});
console.log(bool);
filter选择器
var arr=[1,2,4,6,7,8,5,9];
//选择t++之后是否符合条件,符合则返回原数组的元素
var arr1=arr.filter(function (t) {
t++;
return t>5;//返回的任然是原元素
});
console.log(arr1,arr);