js中的数组详解

 属性length  

    数组的length属性可写可读,其他数据只具备可读

var arr = [1,2,3,4];  
//读  
alert(arr.length); //4  
//写  
arr.length = 2;  
alert(arr.length);//2  

实例方法

push(arg) 添加到尾部

pop() 从尾部删除一个元素, 无参数

shift()         从头部删除一个元素,无参数

unshift(arg)         添加到头部  

splice(起始位置,删除的长度,添加的内容,添加的内容,....)  从数组中删除一段元素

//删除   splice(起始位置,长度) 从数组中删除一段元素,包括起始位置			
var arr1 = [1,2,3,4,5,6,7];
arr1.splice(2,3)
alert(arr1); //[1,2,6,7];

//插入  arr(起始位置,0,插入内容,插入内容,...)  在起始位置之前插入元素			
var arr2 = [1,2,3,4,5,6,7];
arr2.splice(2,0,"a","b");
alert(arr2); //[1,2,a,b,3,4,5,6,7]

//替换 arr(起始位置,删除长度,添加等长度内容)			
var arr3 = [1,2,3,4,5,6,7];
arr3.splice(2,3,"a","b","c");
alert(arr3); //[1,2,"a","b","c",6,7]

join(arg)                                       连接成字符串 

silce(开始位置,结束位置)        截取数组,不包括结束位置

sort(空值/返回数字的函数)      排序

//数字排序
var arr = [1,21,12,34,56,43];		
	//arr.sort() //字母序排序,所有大写字母小于小写字母
		  //默认情况,所有数据按照字符串处理
/*
arr.sort(function(num1,num2){
	if(num1<num2){
		alert(-1); //num1<num2 -> -1/负数 -> num1靠左
	}else{
		alert(1);  //num1<num2 -> -1/正数 -> num1靠右
	}
})
alert(arr);//[1,12,21,34,43,56]
*/

//简写如下:
arr.sort(function(num1,num2){
	return num1-num2
})

alert(arr);//[1,12,21,34,43,56]
	

//拼音排序
var names = ["沈佳仪","张三","杜娥","刘家","阿杜"];
	//names.sort() 是按字符编码排序,按照ASCII对比排序,不能满足需求


names.sort(function(str1,str2){
	return str1.localeCompare(str2); //按照当地习惯排序,由字符串本身决定
});

alert(names);//[阿杜,杜娥,刘家,沈佳仪,张三]

reverse()         反转:无参数

concat(arr2)    数组连接,返回一个新的数组,不影响之前的数组

var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr3 = arr1.concat(arr2);
alert(arr3);//[1,2,3,4,5,6]
//数组复制: 利用concat返回的是新的一个数组,可以用于数组复制
var arr1 = [1,2,3];
var arr2 = arr1.concat([]);
alert(arr1==arr2);//false  证明不是同一个数组
toString()

var arr5 = [5,6,7];
alert(arr5); //alert只能弹字符串,会强制把数据转换成字符串在弹出来

//等效于
alert(arr5.toString());

扩展:

//扩展:函数的toString()
	function show(){
		alert("a");
	}

	alert(show); //把整个函数以字符串方式输出


	//屏蔽
	show.toString = function(){
		return '不可看'
	};

	alert(show); //不可看


//扩展:数字的toString(arg), 可以有参数

	var num = 255;
	alert(num); //255 

	alert(num.toString()); //255 

	alert(num.toString(16));//ff    255转为16进制,再弹出

	alert("#"+num.toString(16));//#ff   好熟悉啊
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值