//1、concat:在现有数组后面追加数组,并返回新数组,不影响现有数组
//只能用于连接数组或字符串
var a = [
1,
2,
3];
var b = [
'a',
'b',
'c'];
var c = a.concat(b);
console.log(
"1、"+c);
//1,2,3,a,b,c
console.log(a);
//[1,2,3]
//数组连接字符串,会追加新元素
console.log(a.concat(
'abc'));
//[1,2,3,"abc"]
//字符串连接数组时,字符串会跟数组首元素拼接成新元素
console.log(
'abc'.concat(a));
//abc1,2,3
//2、join:用指定间隔符连起来,把数组转为字符串
var a = [
'abc',
'123',
'haha'];
console.log(
"2、"+a.join(
'--'));
//abc--123--haha
console.log(a.join(
","));
//abc,123,haha 相当于a.toString()
console.log(a.toString());
//join用于一维数组,对于数组中还有数组的数组,要用toString()
var b = [
1,
2,
3,[
'a',
'b',
'c']];
console.log(b.join(
'*'));
//1*2*3*a,b,c
console.log(b.toString());
//1,2,3,a,b,c
//3、pop:删除数组最后一个元素,并返回该元素,如果数组为空,则返回undefined
var a = [
'aa',
'bb',
'cc'];
console.log(
"3、"+a.pop());
//cc
console.log(a);
//["aa","bb"]
var b = [];
console.log(b.pop());
//undefined
//4、push:在数组后面添加数组,并返回数组新长度
var a = [
"aa",
"bb",
"cc"];
console.log(
"4、"+a.push(
"dd"));
//4
console.log(a);
//["aa","bb","cc","dd"]
a.push([
1,
2,
3]);
console.log(a);
//5、sort:数组排序,默认是字符串比较
var a = [
1,
11,
2,
3,
4,
23,
5];
console.log(
"5、"+a.sort());
//1,11,2,23,3,4,5
a.sort(
function(a,b){
return a-b;
});
console.log(a);
//[1,2,3,4,5,11,23]
//6、reverse:反转元素,并不进行排序
var a = [
11,
3,
5,
66,
44];
console.log(
"6、"+a.reverse());
//44,66,5,3,11
//7、shift:删除数组第一个元素,并返回该元素,数组为空时,返回undefined
var a = [
"aa",
"bb",
"cc"];
console.log(
"7、"+a.shift());
//aa
console.log(a);
//["bb","cc"]
//8、unshift:往数组最前面添加元素,并返回数组新长度
var a = [
"aa",
"bb",
"cc"];
console.log(
"8、"+a.unshift(
"123"));
//4
console.log(a);
//["123","aa","bb","cc"]
//9、slice:返回数组片段
var a = [
'a',
'b',
'c',
'd',
'e',
'f',
'g'];
console.log(
"9、"+a.slice(
1,
2));
//b
console.log(a.slice(
2));
//['c','d','e','f','g']
console.log(a.slice(-
4));
//['d','e','f','g']
console.log(a.slice(-
2,-
6));
//[]
//10、splice:从数组删除某片段的元素,并返回删除的元素
var a = [
'a',
'b',
'c',
'd',
'e',
'f',
'g'];
//①删除:arr.splice(起点,长度)
console.log(
"10、"+a.splice(
2,
3));
//c,d,e
console.log(a);
//['a','b','f','g']
//②插入:arr.splice(起点,长度,元素....) ,插入起始经历了两个步骤:1,删除 2,插入
//这里表示从下标为2的元素开始,删除0个元素,插入1,2,3
console.log(a.splice(
2,
0,
1,
2,
3));
//[]
console.log(a);
//['a','b',1,2,3,'f','g']
//③替换:arr.splice(起点,长度,元素....)
//这里表示从下标为0的元素开始,删除3个元素,然后插入m,n
console.log(a.splice(
0,
3,
'm',
'n'));
//['a','b',1]
console.log(a);
//['m','n',2,3,'f','g']
//11、toString:把数组转为字符串,不只数组,所有对象均可以使用该方法
var a = [
1,
2,
3,[
'a',
'b',
'c'],
4,
5];
console.log(
"11、"+a.toString());
//也可以对数组的指定元素进行进制转换
console.log(a[
5].toString(
2));
//12、toLocaleString:返回本地格式字符串,主要用在Date对象上
var date =
new Date();
console.log(date.toString());
console.log(date.toLocaleString());
console.log(date.toLocaleDateString());
//扩展:
//1、数组的拷贝
var arr = [
1,
2,
3,
4];
console.log(arr.slice(
0));
//返回数组的拷贝数组,注意是一个新的数组,不是指向
console.log(arr.concat());
//返回数组的拷贝数组,注意是一个新的数组,不是指向
//2、length属性
//Length属性表示数组的长度,即其中元素的个数。因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-1。
//和其他大多数语言不同的是,JavaScript数组的length属性是可变的,这一点需要特别注意。
//当length属性被设置得更大时,整个数组的状态事实上不会发生变化,仅仅是length属性变大;当length属性被设置得比原来小时,
//则原先数组中索引大于或等于length的元素的值全部被丢失。
//3、prototype属性
//返回对象类型原型的引用。prototype属性是object共有的。
//objectName.prototype
//说明:用prototype属性提供对象的类的一组基本功能。对象的新实例"继承"赋予该对象原型的操作。
function array_max(){
var i,max =
this[
0];
for(i=
0;i<
this.length;i++){
if(max <
this[i])
max =
this[i];
}
return max;
}
Array.prototype.max = array_max;
var arr =
new Array(
2,
3,
55,
4,
88,
19);
console.log(arr.max());
//88
//4、constructor属性
//表示创建对象的函数。
//object.constructor //object是对象或函数的名称
//说明:constructor属性是所有具有protorype的对象的成员。
//它们包含除Global和Math对象以外的所有JS固有对象。
//constructor属性保存了对构造特定对象实例的函数的引用。
var str =
new String(
"hi");
console.log(str.constructor);
//function String(){[native code]}
var arr =
new Array(
1,
2,
3);
console.log(arr.constructor);
//function Array(){[native code]}
//删除数组中指定的元素
function del(val, arr)
{
//检测参数
if (arr ==
null && arr.constructor != Array) {
return [];
}
var newarr = [];
//不存在的保存到新数组中
for (
var i =
0; i < arr.length; i++) {
if (arr[i] != val)
newarr.push(arr[i]);
}
return newarr;
}
alert(del(
2, [
1,
2,
3,
4,
5,
2]));