数组学习

数组学习

改变原数组  

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。(可多个)

pop() 方法用于删除并返回数组的最后一个元素。(不可传值)

shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

reverse() 方法用于颠倒数组中元素的顺序。(逆转)

splice(从第几位开始,截取多少长度,在切口处添加新的数据)

sort(排序)   

   var arr=[];

系统实现方法:

  push方法:

Array.prototype.push=function () {
for (var i = 0; i < arguments.length; i++) {
this[this.length]=arguments[i];
}
return this.length;
}

 unshift方法:

Array.prototype.unshift=function () {
 for (var i = 0; i < arguments.length; i++) {
  this[0]=arguments[i];
 }
 return this.length;
}

sort (排序):

1:必须两形参
2:看返回值  

    1)返回值为负数,那么前面的数在前 ;

    2)返回值正数,那么后面的数在前  ;

          返回值0  不动
arr.sort(function(a,b){
// if(a>b){
// return 1; 
// }else{
//   return -1; 
// }
return a-b;//升序
return b-a;//降序
})

//乱序   将一个有序数组随机打乱排序
   arr.sort(function(){
       return Math.random()-0.5;
   })

 Math.random() 随机数0到1;

//字节排序   

//var  str = "ddd呆的"

function retBytes(str){(判断一个字符串字节长度)
      var num = str.length;
      for (var i = 0; i < str.length; i++) {
      if (str.charCodeAt(i)>255) {
      num++;
      }
      }
      return num;

   }

console.log(retBytes(str))   // 打印7

var arr=["a灯","挨边不","中","顶顶zan"];
   arr.sort(function (a,b){
      return  retBytes(b)-retBytes(a);
   })

  console.log(arr)  //对字符串长度进行从大到小进行排序

//第二种写法 (同样调用判断字符串长度的函数)

function sortArr(a,b){
       return  retBytes(a)-retBytes(b);
   }
  console.log(arr.sort(sortArr)) //对字符串长度进行从下到大进行排序

charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。




       不可改变原数组  

concat  拼接一个或多个数组,返回新的数组

join      用于把数组中的所有元素连接返回一个字符串。

split     字符串方法    数组返回字符创   字符创返回数组(互逆)

toString 方法可把一个逻辑值转换为字符串,并返回结果。

slice  (从哪位开始,截取到哪位)

将多个字符串拼接

var  arr = [str1,str2...];

arr.join(“”);



   //类数组
   var obj = {
        "0":"a",
        "0":"b",
        "0":"c",
        "length":"3",
        "push":Array.prototype.push
   }
    1:0属性要有索引(数字)属性
    2:必须有length属性,最好加上push
    
    好处
    将数组和对象拼接到一起


    类数组push方法
    Array.prototype.push=function(target){
    obj[obj.length]=target;
    obj.length++;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值