js数组操作
- 初始化
/ 字面量方式:
// 这个方法也是我们最常用的,在初始化数组的时候 相当方便
var
a = [3, 11, 8];
// [3,11,8];
// 构造器:
// 实际上 new Array === Array,加不加new 一点影响都没有。
var
a = Array();
// []
var
a = Array(3);
// 一个参数,代表数组长度,值都没有定义,[undefined,undefined,undefined]
var
a = Array(3,11,8);
//多个参数,代表插入数组的值 [ 3,11,8 ]
var mycars=new Array() mycars[0]="Saab" mycars[1]="Volvo" mycars[2]="BMW" var mycars=new Array(3) mycars[0]="Saab" mycars[1]="Volvo" mycars[2]="BMW"
- concat组合多个数组到一个大数组
<script type="text/javascript"> var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" var arr2 = new Array(3) arr2[0] = "James" arr2[1] = "Adrew" arr2[2] = "Martin" var arr3 = new Array(2) arr3[0] = "William" arr3[1] = "Franklin" document.write(arr.concat(arr2,arr3)) </script>
-
join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的
<script type="text/javascript"> var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr.join()) </script> George,John,Thomas <script type="text/javascript"> var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr.join(".")) </script> George.John.Thomas
- reverse() 方法用于颠倒数组中元素的顺序。
- pop删除并返回数组的最后一个元素
- push向数组的末尾添加一个或更多元素,并返回新的长度。
-
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
- unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
- slice() 方法可从已有的数组中返回选定的元素(获取子串)
如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。
<script type="text/javascript"> var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr + "<br />") document.write(arr.slice(1) + "<br />") document.write(arr) </script> George,John,Thomas John,Thomas George,John,Thomas <script type="text/javascript"> var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] = "James" arr[4] = "Adrew" arr[5] = "Martin" document.write(arr + "<br />") document.write(arr.slice(2,4) + "<br />") document.write(arr) </script> George,John,Thomas,James,Adrew,Martin Thomas,James George,John,Thomas,James,Adrew,Martin
begin从0开始计数,不包括end
- sort对数组排序
<script type="text/javascript"> function sortNumber(a,b) { return a - b } var arr = new Array(6) arr[0] = "10" arr[1] = "5" arr[2] = "40" arr[3] = "25" arr[4] = "1000" arr[5] = "1" document.write(arr + "<br />") document.write(arr.sort(sortNumber)) </script> 10,5,40,25,1000,1 1,5,10,25,40,1000 return a-b 跟这个一样: if(a<b){ return -1; } if(a>b){ return 1; } return 0;
- splice:
方法用于删除、替换、添加数组中的元素
第一个参数:下标
第二个参数:删除数量,0表示不删除
第三个以后的参数:插入元素,长度可以动态变化,不填表示不插入
var list = []; list.push(1); list.push(2); list.push(3); console.log(list); // [1, 2, 3] // 删除 list.splice(0, 1); // 删除 -> 从下标为0开始,长度为1 console.log(list); // [2,3] list.splice(0, 2); // 删除 -> 从下标为0开始,长度为2 console.log(list); // []
//把上面四句替换成下面四句 //替换 list.splice(0, 1, 4); // 替换 -> 从下标为0开始,长度为1的数组元素替换成4 console.log(list); // [4,2,3] list.splice(0, 2, 4); // 替换 -> 从下标为0开始,长度为2的数组元素替换成4(即4,2整体替换成4) console.log(list); // [4,3]
//把上面四句替换成下面四句
list.splice(1, 0, 5); // 表示在下标为1处添加一项5
console.log(list); // [1,5,2,3]
list.splice(1,0,5,4,3); // 表示在下标为1处依次添加5/4/3三个元素
console.log(list); // [1,5,4,3,2,3]
- map--遍历数组元素,对数组做处理生成新的数组
var data = [1, 2, 3, 4];
var arrayOfSquares = data.map(function (item) {
return item * item;
});
alert(arrayOfSquares); // [1, 4, 9, 16]
在实际使用的时候,我们可以利用map
方法方便获得对象数组中的特定属性值们。例如下面这个例子(之后的兼容demo也是该例子):
var users = [ {name: "张含韵", "email": "zhang@email.com"}, {name: "江一燕", "email": "jiang@email.com"}, {name: "李小璐", "email": "li@email.com"} ]; var emails = users.map(function (user) { return user.email; });