【javascript笔记】数组

1、字面量: var arr = [1,2,3]

2、构造函数:var arr = new Array(1,2,3)

3、区别:如果传一个参数 var arr = new Array(10), 则代表创建一个长度为10 的数组,传一个参数的话只能写整数

4、不可溢出读,会返回undefined 

5、可以溢出写

6、数组的方法:

  改变原数组:

    1)push , pop, shift, unshift, 

    2)sort :

      必须写两形参、看返回值

       (1) 当返回值为负数时,那么前面的数放在前面  

       (2)为正数,那么后面的数在前面  

          (3)为0时,不动

       arr.sort(function (a, b) {

        return a-b ; //升序  b-a  降序

       });

    3)reverse:将数组里的每个元素反转

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

      第一个参数:position += position > 0 ? 0 : this.length;

  不改变原数组:

    1)concat将两个数组连接,并返回一个新的数组

      var arr = [1,2];   

      var arr1 = [3,4];

      var arr3 = arr.concat(arr1);   // arr[3] 为 [1,2,3,4]

    2)join将数组用字符串连接成一个字符串, 并返回字符串

      var  arr = ['hello', 'world!'];

      var str = arr.join('~');     //str 为 'hello~world'

    3)toString:将数组里的每一个元素连接成字符串,并返回一个字符串

       var arr = ['我','叫','小明'];

       var str = arr.toString();     //str 为 '我叫小明'

    4) slice :

      var arr = [1,2,3,4,5,6];

       一个参数时:slice(index), 从index开始截取,一直截取到最后一位。

         arr.slice(2);   //返回 [3,4,5]

      两个参数时:slice(从该为开始截取,截取到该位)

         arr.slice(2, 4);   //返回 [3,4]

    5) split : 将字符串按照一个字符串来拆分,返回一个数组

      var str = 'a-3-v-6-g';

      str.split('-');    // 返回 ['a', '3', 'v', '6', '8']

7、例子

  (1) 给一个有序的数组。乱序

var arr = [1,2,3,4,5,6,7];
arr.sort(function) {
    return Math.random() - 0.5;
}

  (2) 字符串字节长度排序

var arr = ['a哈', 'khj哈哈', 'jhjs哈哈哈', 'iu', '哈哈哈哈哈哈'];
arr.sort(function(a, b) {
    return strBytes(a) - strBytes(b);   //结果为["iu", "a哈", "khj哈哈", "jhjs哈哈哈", "哈哈哈哈哈哈"]
});
//返回字符串字节长度
function strBytes(str) {
   var num = str.length;
    for(var i = 0, len = str.length; i < len; i ++) {
        if(str.charCodeAt(i) > 255) {
            num ++;
        }
    }
    return num;
}

   (3) 将下面字符串连接在一起

var str = 'aa',
str1 = 'bb',
str3 = 'cc',
str4 = 'dd',
str5 = 'ee',
str6 = 'ff';
var arr = [str, str1, str2, str3, str4, str5];
arr.jion('');      

  (4) 判断类型

function type(target) {
    //1.分两类 原始值  引用值
    //2.区分引用值
    var ret = typeof(target);
    var template = {
        "[object Array]" : 'array',
        "[object Object]" : 'object',
        "[object Number]" : 'number - object',
        "[object Boolean]" : 'boolean - object',
        "[object String]" : 'string - object',
    }    
    if(target === null) {
        return null;
    }else if(ret == 'object') {
        var str = Object.prototype.toString.call(target);
        return template[str];
    }else {
        return ret;
    }
}
        

  (6) 数组去重

        Array.prototype.unique = function() {
        var obj = {},
           arr = [];
        for(var i = 0, len = this.length; i < len; i ++) {
            if(!obj[this[i]]) {
                obj[this[i]] = 'a';
                arr.push(this[i]);
            }
        }
        return arr;
    }

猜你喜欢

转载自www.cnblogs.com/hjysunshine/p/12293779.html