数组

数组

  • 定义:new Array(length/content);
    字面量 只有这两种方式
    var arr = [1,2,,,,3,4];
    var arr = new Array(1,3,3,4,6);
    只有这两种方式,这两种基本上是一样得,逗号分隔开那部分是underfined
    var arr = new Array(10);
    和上一种不同的是 如果只有这一位参数,就会被当成长度,而不是第一位的值。10个underfined ;这里如果是10.2带小数点就会报错,只能填整数,而第一种不会。
数组常用的方法
  • 改变原数组
    push, pop , shift, unshift, sort, reverse, splice
  • 不改变原数组
    concat,join-->split,toString,slice
    1.push:往数组末尾加东西
    var  arr  =  [1,2,3];
    Array.prototype.push  =  function()  {
      for(var   i= 0; i < arguments.length; i++){
             this[this.length]  =  arguments[i];
      }
            return this.length;
    }
arr.push(4,5,6,7);

2.pop:向数组里面剪切东西
var arr = [1,2,3];
arr.pop() return 3 ;
arr() arr[1,2];
3.shift:往数组首位去东西
var arr = [1,2,3];
arr.shift() return1;
arr() arr[2,3];
4.unshift: 往数组首位填东西
var arr = [1,2,3];
arr.unshift(-1,0) return5;
arr() arr[-1,0,1,2,3]
5.reverse:逆转
var arr = [1,2,3];
arr.reverse() return[3,2,1]
6.splice:
arr.splice(从第几位开始,截取多少的长度,在切口处添加新的数据)
1)var arr = [1,1,2,2,3,3];
arr.splice(0,3) arr[2,3,3]
2)var arr = [1,2,3,5];
arr.splice(3,0,4); arr[1,2,3,4,5];
3)var arr = [1,2,3,4];
splice = function(position){
position += positon > 0 ? 0:this.length
-1 + 4 = 3 第零位是在1前面,光标所在位置
arr.splice(-1,1) return[ 4]
7 .sort:正常是按阿斯克吗顺序排的
arr[1,3,10,4,8]
但是如果要按正常顺序排序,需按一下操作执行
1.必须写俩形参
2.看返回值
1)当返回值为负数时,那么前面的数放在前
2)为正数,那么后面的数在前
3)为0, 不动

var arr  =  [20,2,10,13,4,8,9];
arr.sort(function (a,b)  {
  //  if(a>b){
//  return a-b
//} else{
//  return a-b
//}
      //return a-b;升序
      //return b-a  降序
    return b-a;
});
给一个有序的数组,乱序
var arr  =  [1,2,3,4,5,6,7];
arr.sort(function()  {
      return  Math.random()  -  0.5
  });
function retBytes(str)  {
var num = str.length;
for(var i = 0;  i < str.length; i ++ ) {
    if(str.charCodeAt(i)  > 255){
            num  ++;
    }
}
return num;
}
var arr  =  ['a打',  ‘ba打’,  ‘cc打cc’,‘老打’,‘残
打’,‘dasdasd’,‘大大是’];  
arr.sort(function (a,  b ){
    return retBytes(a)  -  retBytes(b);
});

8.concat:拼接数组 但不改变原数组
arr.concat(arr1)
[1,2,3,4,5,6,7,8,9]
arr [1,2,3,4,5,6] arr1[7,8,9]
9.slice:(从该位开始截取,截取到该位)(两个参数)
var arr = [1,2,3,4,5,6];
var newArr = arr.slice(1, 3)
newArr[2, 3]
var newArr = arr.slice(-4)
newArr[3, 4, 5,6] 如果是截一位,一直截取到最后
10.join:用来连接数组
var arr = [1,2,3,4,5,6]; var str = arr.join("-")
str return "1-2-3-4-5-6"
str.split("-") return ['1','2','3','4','5','6']

var str  =  'alibaba';
var str1  =  'baidu';
var str2  =  'tencent';
var str3 = 'toutiao';
var strFinal ="";
//散列
var arr  =[str,str1,str2,str3];
console.log(arr.join(""))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容