一、数组
数组是最简单的内存数据结构,javascript数组可以保存不同类型的值,但是为了最佳实践,我们最好保存同一类型的值。
创建和初始化数组
// 创建数组
var demoArray = new Array();
// 创建指定长度的数组
var demoArray = new Array(3);
// 创建指定内容的数组
var demoArray = new Array(1,2,3,4);
// 创建空数组
var demoArray = [];
// 创建指定内容的数组
var demoArray = [1,2,3,4,5];
常用操作
var demoArray = [1,2,3,4,5];
// 查看数组长度
demoArray.length;
// 获取指定下标元素,index为元素下标,如果下标位置元素不存在则item为undefined
var item = demoArray[index]
添加和删除元素
var number = [1,2,3];
// 通过下标添加元素
// 为下标不存在的元素赋值,会直接将数组元素增加,并且数组长度也增加中间未赋值的元素为undefined
number[3] = 4;
// 通过push方法添加
// 会向数组尾部增加元素,push可以传入多个值,返回添加后的数组长度。
number.push(5);
number.push(6,7);
// 通过unshift方法添加
// 会向数组头部增加元素,可以传入多个值,返回添加后的数组长度
number.unshift(0);
//添加顺序为-1,-2,也就是从后向前逐个头部添加
number.unshift(-2,-1);
// 通过pop方法删除元素
// 删除数组尾部的一个元素,返回被删除元素
number.pop();
// 通过shift方法删除元素
// 删除数组第一个元素,返回被删除元素
number.shift();
// 通过splice添加/替换/删除元素
// 删除指定元素
// 第一个参数为开始位置,第二个参数为长度
// 也就是说删除从索引为2的元素开始(包括2)的三个元素
number.splice(2,3);
// 从第三个参数开始(包括第三个参数),将从第一个参数的位置开始添加添加这些元素,可用于替换指定位置的值
number.splice(2,3,1,3,4);
其它数组方法
var number = [1,2,3,4];
// 连接两个或更多数组,并返回新数组
number.concat(number);
number.concat(number,number);
// 对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true
number.every(function(item){
// do something……
return true;
});
// 对数组中的每一项运行给定函数,返回该函数会返回true的项组成的新数组
// 返回偶数构成的数组
number.filter(function(item){
if(item%2 === 0){
return true;
}
});
// 对数组中的每一项运行给定的函数。无返回值
number.forEach(function(item,index){});
// 将所有的 数组元素连接成一个字符串
// 默认采用','进行连接,如果有参数则使用参数进行连接
// 数组的toString方法返回的是','连接的字符串
number.join();
// 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1
number.indexOf(2);
// 返回在数组中搜索到的与给定参数相等的元素的索引里的最大的值
number.lastIndexOf(2);
// 对数组中的每一项运行给定函数,返回每次函数调用的结果组成 的新数组
number.map(function(item,index){return item});
// 颠倒数组中元素的顺序
// 原先第一个元素现在变成最后一个,同样原先的最后一个元素变成了现在的第一个
number.reverse();
// 传入索引值,将数组里对应索引范围内的元素作为新数组返回
// 第一个参数值默认为0
// 第二个参数值默认为数组长度
number.slice()
// 对数组中的每一项运行给定函数,如果任一项返回true,则返回true
number.some(function(item){return true;});
// 按照字母顺序对数组排序,支持传入指定排序方法的函数作为参数,会改变原数组
number.sort();
// 从小到大排序
number.sort(function(a,b){
if(a<b){
return -1;
}else if(a>b){
return 1;
}else{
return 0;
}
});
// 返回原数租
number.valueOf();