数组的创建
var arr = new Array();
var arr = new Array(size);
var arr = new Array([element]); //var arr = new Array(1,2,3);
常用的还是数组的语法糖形式
var arr =[];
访问
arr[index] //下标从0开始
var arr = [1,2,3];
console.log(arr[2]); //3
arr.indexOf(element)
功能:搜索一个指定的元素的位置
参数:元素
返回值:元素的位置/下标
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var index = arr.indexOf(3);
console.log(index); // 2
console.log(arr); //[1,2,3]
添加
arr.push()
功能:向数组的末尾添加一个或者多个元素
参数:一个或者多个元素
返回值:元素添加到数组后的新长度
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newLength = arr.push(4);
console.log(newLength); //4
console.log(arr); //[1,2,3,4]
arr.unshift()
功能:向数组的开头添加一个或者多个元素
参数:一个或者多个元素
返回值:元素添加到数组后的新长度
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newLength = arr.unshift(4);
console.log(newLength); //4
console.log(arr); //[4,1,2,3]
删除
arr.pop()
功能:从数组的末尾删除一个元素
参数:无
返回值:删除的元素
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newLength = arr.pop();
console.log(newLength); //3
console.log(arr); //[1,2]
arr.shift()
功能:从数组的开头删除一个元素
参数:无
返回值:删除的元素
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newLength = arr.shift();
console.log(newLength); //1
console.log(arr); //[2,3]
连接(合并)
arr.concat()
功能:在数组的尾部添加元素或者数组
参数:可以是元素,也可以是数组
返回值:添加后的数组
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newArr = arr.concat(4);
console.log(newArr); //[1,2,3,4]
console.log(arr); //[1,2,3]
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newArr = arr.concat([4,5]);
console.log(newArr); //[1,2,3,4,5]
console.log(arr); //[1,2,3]
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newArr = arr.concat(4,5);
console.log(newArr); //[1,2,3,4,5]
console.log(arr); //[1,2,3]
排序
arr.reverse()
功能:反转数组,改变数组元素位置
参数:无
返回值:反转后的数组
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newArr = arr.reverse();
console.log(newArr); //[3,2,1]
console.log(arr); //[3,2,1]
arr.sort()
功能:数组排序,会修改数组的元素位置,直接调用按照默认顺序ASCII码进行排序
参数:函数
通常规定,对于两个元素x和y,如果认为x < y,则返回-1,
如果认为x == y,则返回0,
如果认为x > y,则返回1
返回值:反转后的数组
var arr = [1,20,10,2];
console.log(arr.sort()); //[1,10,2,20]
var t = arr.sort(function(x, y){
if (x > y) {
return 1;
}
if (x < y) {
return -1;
}
return 0;
});
console.log(t); // [1, 2, 10, 20]
//按照字母顺序排序,忽略大小写
var arr = ['Google', 'apple', 'Microsoft'];
arr.sort(function (s1, s2) {
x1 = s1.toUpperCase();
x2 = s2.toUpperCase();
if (x1 < x2) {
return -1;
}
if (x1 > x2) {
return 1;
}
return 0;
}); // ['apple', 'Google', 'Microsoft']
截取
arr.slice(start, end)
功能:数组的截取
参数:开始位置和结束位置,可以为负数
返回值:截取到的数组,包含start不包含end
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newArr = arr.slice(0,2);
console.log(arr.slice(0));//[1,2,3] 可以用来复制一个数组
console.log(arr.slice(-2, -1)); //[2]
console.log(newArr); //[1,2]
console.log(arr); //[1,2,3]</span><span style="font-size: 18px;">
字符串化
arr.toString()
功能:数组转化为字符串
参数:无
返回值:转化后的字符串
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var str = arr.toString();
console.log(str); // 1,2,3
console.log(arr); //[1,2,3]
arr.join(separator)
功能:连接数组所有元素为一个分隔符分割的字符串
参数:分隔符
返回值:连接后的字符串
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var str = arr.join();
console.log(str); // 1,2,3
console.log(arr.join('-'));// 1-2-3
console.log(arr); //[1,2,3]
遍历
var arr = ['Google', 'apple', 'Microsoft'];
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
};
万能方法
arr.splice()
功能:方法是修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,
然后再从该位置添加若干元素
参数:位置 删除个数 添加的元素
返回值:返回删除的元素
var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle'];
// 从索引2开始删除3个元素,然后再添加两个元素:
arr.splice(2, 3, 'Google', 'Facebook'); // 返回删除的元素 ['Yahoo', 'AOL', 'Excite']
arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']
// 只删除,不添加:
arr.splice(2, 2); // ['Google', 'Facebook']
arr; // ['Microsoft', 'Apple', 'Oracle']
// 只添加,不删除:
arr.splice(2, 0, 'Google', 'Facebook'); // 返回[],因为没有删除任何元素
arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']