1.创建数组的两种方式:
(1)利用数字字面量:
var arr =[1,2,3,4,5];
console.log(arr[0]);
(2)利用new Array()
var arr1 = new Array();//创建了一个空数组
var arr1 = new Array(2);//2表示数组的长度为2,里面有两个空的数组元素
var arr1 = new Array(2,3);//等价于【2,3】这样写表示此数组里面有2个数组元素,是2和3
console.log(arr1);
2.检测是否为数组:
var arr=[2,4,5,6];
var obj={}
console.log(arr instanceof Array );
console.log(Array.isArray(arr));
console.log(obj instanceof Array );
console.log(Array.isArray(obj));
3.(1)添加/删除数组元素的方法:
var arr=[1,2,3]
console.log(arr.push(4,'pink'));
console.log(arr);
console.log(arr.unshift(5,'pink',8));
console.log(arr);
console.log(arr.pop());
console.log(arr );
console.log(arr.shift());
console.log(arr );
(2)筛选符合要求的数组:(此例子是筛选小于10的数)
var arr = [2, 45, 67, 8, 9];
var arr1 = [];
for (var i = 0; i <= arr.length; i++) {
if (arr[i] < 10) {
// arr1[arr1.length]=arr[i];
arr1.push(arr[i]);
}
}
console.log(arr1);
4.数组排序:
(1).翻转数组:
var arr = ['pink','red','green','yellow']
arr.reverse();
console.log(arr);
(2)数组排序(冒泡排序):
var arr1=[13,54,77,18,97]
arr1.sort(function(a,b){
return a - b;//升序的顺序排列
// return b - a;//降序的顺序排列
});
console.log(arr1);
5.数组索引方法:
案例:数组去重
目标:把旧数组里面不重复的元素选出来放到新数组中,重复的元素只保留一个,放到新数组中;
算法:遍历旧数组,旧数组里的该元素没有在新数组里出现过就添加到新数组,否则不添加;
判断是否存在:indexOf返回值为-1则新数组没有该元素。
function unique(arr){
var newarr=[];
for(var i=0;i<arr.length;i++){
if(newarr.indexOf(arr[i])===-1){
newarr.push(arr[i])
}
}return newarr;
}
var demo =unique([1,3,4,4,5,7,7,8])
console.log(demo);
6.数组转换为字符串
var arr=[1,2,3,4]
console.log(arr.toString());
console.log(arr.join());
console.log(arr.join('+'));
console.log(arr.join('*'));
console.log(arr.join('/'));
字符串不变性:(因此最好不要大量拼接字符串)
var str ='';
for(var i=0;i<=10;i++){
str+=i
}
console.log(str);
根据字符串返回位置:
var arr=['red','blue','red','pink']
var index=arr.indexOf('red')
var num=0;
while (index!=-1) {
console.log(index);
num++;
index=arr.indexOf('red',index+1)
}
console.log("red出现的次数是" + num);
根据位置返回字符:
var str = 'hello';
console.log(str.charAt(1));
7.字符串对象:
有一个对象,来判断是否有该属性 对象名['属性名']
var o={
age:18
}
if (o['sex']) {
console.log("有该属性");
}else{
console.log("没有该属性");
}
案例:返回字符位置
判断一个字符串中出现次数最多的字符,并统计其次数
算法:利用charAt()遍历这个字符串;
把每个字符都出村给对象,如果对象没有改属性,就为1,如果存在了加1;
遍历对象,得到最大值和该字符
var str = 'abcoefoxyozzopp'
var o = {};
for(var i=0;i< str.length ;i++){
var chars = str.charAt(i);//chars是字符串里的每一个字符
if(o[chars]){//o[chars]得到的是属性值
o[chars]++;
}else{
o[chars]=1;
}
}
console.log(o);