创建数组
1.通过字面量来创建
var arr = [10,20,30,40,50,60];
2.通过内置构造函数方式来创建new来创建
var array = new Array(10,20,30,40,50,60);
console.log(array);
两种创建方式只有1个区别,如果里面就写一个数字,假设是6,表示的是6个empty,长度为6
判断这个对象是不是数组
1.instanceof 判断这个对象是否是数组,如果是返回的是true,如果不是就是false
var ary = [];
console.log(ary instanceof Array); //true
2.isArray判断这个对象是否是数组,如果是数组返回true,如果不是数组返回false
var ary = [];
console.log(Array.isArray(ary)); //true
例:
var num = 10;
console.log(num instanceof Array); //false
console.log(Array.isArray(num)); //false
1.push(值1,值2,值3…) 把数据往数组后面添加(追加),返回的是追加之后的长度
var arr = [10,20,30,40,50,60];
var result1 = arr.push(100,200);
console.log(result1); //8 数组长度
console.log(arr); //10,20,30,40,50,60,100,200 //数组
2.unshift( ) 往前面追加
var arr = [10,20,30,40,50,60];
var result2 = arr.unshift(100,200);
console.log(result2); //8 数组长度
console.log(arr); //100,200,10,20,30,40,50,60 //数组
3.pop( ) 删除数组最后一项返回删除的那一项
var arr = [10,20,30,40,50,60];
var result3 = arr.pop();
console.log(result3); //60
console.log(arr); //10,20,30,40,50
4.shift( ) 删除数组的第一项
var arr = [10,20,30,40,50,60];
var result4 = arr.shift();
console.log(result4); //10
console.log(arr); //20,30,40,50,60
5.indexOf(元素值) 返回这个元素所在数组中的索引位置,如果这个元素不存在就返回-1
.lastIndexOf(元素值) 从后向前查找返回所在数组中的索引位置,如果元素不存在就返回-1
var arr = [10,20,30,40,50,60];
var index1 = arr.indexOf(30);
console.log(index1); //2 30所在数组中的位置
var index2 = arr.lastIndexOf(10);
console.log(index2); //0 10所在数组中的位置
6.join(“字符串”) 把数组按照指定的字符串进行拼接,如果没有参数就按默认的逗号拼接成字符串,如果有参数就按照指定的参数进行字符串拼接
var arr2 = ["鸣人","佐助","小樱","宁次","小李"];
var temp = arr2.join("|");
console.log(temp); //鸣人|佐助|小樱|宁次|小李
7.reverse() 数组反转 参数无,返回值是反转之后的数组
var arr = [10,20,30,40,50,60];
var temp = arr.reverse();
console.log(temp); //60,50,40,30,20,10
8.sort() 数组排序 冒泡排序,如果没有参数,只能排序10以内数字,如果超过了10,或者说任意数字,那么则要传递一个匿名函数,这个函数叫做回调函数
var arr1 = [1,8,9,2,3,5,7];
var temp = arr.sort();
console.log(temp); //1,2,3,5,7,8,9
超过10
var arr1 = [1,11,22,15,18,88,99,100,66,200];
var temp1 = arr1.sort(function(){ //匿名函数(回调函数)
return a - b; //表示从小到大 b - a 表示从大到小
})
console.log(temp1); //1,11,22,15,18,66,88,99,100,200
9.slice(n,m) 从索引n开始获取到索引m(不包含m)返回值是元素组成的新数组
var arr = [10,20,30,40,50,60];
var temp = arr.slice(2,5);
console.log(temp); //30,40,50
10.splice(n,m,x/y/z…) 把数组从索引n开始删除m个元素,用x/y/z…替换删除的m项,返回值是删除的m项的新数组
var arr1 = [10,20,30,40,50,60];
var temp1 = arr1.splice(1,2,200,300);
console.log(temp1); //20,30 这两项被替换掉了
console.log(arr1); //10,200,300,40,50,60 原来的数组是被替换后的数组
当m为0时,会直接把x/y/z替换到索引n的前面
当不写x/y/z…时代表删除几个元素
当里面什么都不写时代表没有数组进行任何操作,返回一个空数组 //[]
当里面为0时代表删除整个数组返回原数组,原数组变为空
练习:
1.截取字符串"我爱中华人民共和国",中的"中华"
var str = "我爱中华人民共和国";
var index = str.indexOf("中华"); //返回所在索引位置
// console.log(index); //获取到"中华"所在的位置 2
str = str.substr(index,2); //截取两位字符
console.log(str);
2.找到字符串中所有的o的出现的位置
方法1.
var str = "hello wod odd ott fbo nhyo";
var index = 0;
var key = "o";
//循环
while((index = str.indexOf(key,index)) != -1){
//如果是-1情况下说明找完了 indexOf(key,index)表示要找到o(key),0(index)开始
console.log(index); //打印出所有o的位置
index++; 找到一个后再自增
//index += key.length;
//等价于 index +=1 或者说index++
}
方法2.
var str = "hello wod odd ott fbo nhyo";
function fun(str,key){
// 循环
for(var i = 0; i < str.length; i++){
// 判断有没有这个o
if(str[i] == key){
console.log(str.indexOf(key,i)); //从i=0开始找o
}
}
}
fun(str,"o");