new Array();
new Array(size);
new Array(e1,e2,....,e);
[e1,e2,...,e];
三、常用方法
1. 原数组不变,返回新数组 concat(value/array) 连接两个或更多的数组,并返回结果。
var a = [1,2,3];
a.concat(4,5); //[1, 2, 3, 4, 5]
slice(start,end) 从某个已有的数组返回选定的元素
var a = [1,2,3,4,5];
a.slice(1,3); //[2, 3]
2. 原数组改变 shift() 删除并返回数组的第一个元素
[1,2,3].shift(); //1
pop() 删除并返回数组的最后一个元素
[1,2,3].pop(); //3
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
[1,2,3].push(1); //4
reverse() 颠倒数组中元素的顺序。
var a = [1,2,3];
a.reverse(); //[3, 2, 1]
sort() 对数组的元素进行排序
var a = [1,2,3,4,5];
a.sort(function(a,b){
return b-a;
}) //[5, 4, 3, 2, 1]
splice(index,howmany,item1,.....,itemX) 删除元素,并向数组添加新元素,返回被删除的项。
var a = [1,2,3];
a.splice(1,2,'a','b','c'); //[2, 3]
a; //[1, "a", "b", "c"]
var a = [1,2,3];
a.splice(1,0,['a','b']); //[] 0不会删除
a; //[1, Array[2], 2, 3]
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
var a = [1,2,3];
a.unshift('a','b'); //5
3. 其他 join(separator) 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
[1,2,3].join(); //"1,2,3"
[1,2,3].join(",!~");//"1,!~2,!~3"
valueOf() 返回数组对象的原始值
var a = [1,2,3];
a.valueOf(); //[1,2,3]
1. 构建字符串的最优方法 当你需要遍历数组或对象的时候,不要总想着“for”语句,要有创造性,总能找到更好的办法:
var arr = ['item 1', 'item 2', 'item 3', ...];
var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>';
2. 找出元素 item 在给定数组 arr 中的位置
function indexOf(arr, item) {
return [].indexOf.call(arr,item)
}
indexOf([ 1, 2, 3, 4 ], 3)
3. 计算给定数组 arr 中所有元素的总和
function sum(arr) {
return arr.reduce(function(pre,cur,ind,arr){
return pre+cur;
})
}
sum([ 1, 2, 3, 4 ])
4. 移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
function remove(arr, item) {
return arr.filter(function(value, index, arr) {
if (value === item) {
return false
}
return true
})
}
remove([1, 2, 3, 4, 2], 2)
5. 移除数组 arr 中的所有值与 item 相等的元素,请直接在给定的 arr 数组上进行操作
function removeWithoutCopy(arr, item) {
var j = 0;
for(var i = 0, l = arr.length; i < l; i ++){
if(arr[i] != item){
arr[j++] = arr[i];
}
}
arr.length = j;
return arr;
}
removeWithoutCopy([1, 2, 2, 3, 4, 2, 2], 2)
6. 在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组
function append(arr, item) {
return arr.concat([item]);
}
7. 删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组
function curtail(arr) {
return arr.slice(1);
}
curtail([1, 2, 3, 4])
8. 删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组
function truncate(arr) {
return arr.slice(0,arr.length-1);
}
truncate([1, 2, 3, 4])
9. 在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组
function prepend(arr, item) {
return [item].concat(arr);
}
prepend([1, 2, 3, 4], 10)
10. 统计数组 arr 中值等于 item 的元素出现的次数
function count(arr, item) {
var res;
return (res = arr.toString().match(new RegExp("\\b"+item+"\\b","g"))) ? res.length : 0;
}
count([1, 2, 4, 4, 3, 4, 3], 4)
11 找出数组 arr 中重复出现过的元素
function duplicates(arr) {
var ary = arr.sort();
var len = arr.length;
var res = [];
for(var i=0;i<len;i++){
if(ary[i-1]===ary[i] && ary[i]!=ary[i+1]){
res.push(ary[i]);
}
}
return res;
}
duplicates([1, 2, 4, 4, 3, 3, 1, 5, 3])
12. 为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组
function square(arr) {
return arr.map(function(x) {return x*x});
}
square([1, 2, 3, 4])