[记录] JavaScript 中的数组操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[记录] JavaScript 中的数组操作相关的知识,希望对你有一定的参考价值。

1. 定义方式;
   var arr = []; // 数组字面量
   var arr = new Array(); // 数组构造函数

   数组所有方法都来源于 Array.prototype

2. 数组的读和写;
   arr[num]  // 不可以溢出读  结果undefined
   arr[num] = xxx; // 可以溢出写 

3. 改变原数组
   push()
   // 在数组最后一位添加数据,返回值是数组的长度;
   模拟数组方法:
   Array.prototype.push = function (){
        for( var i=0;i<arguments.lenght;i++){
            this[this.length] = arguments[i];
        }
        return this.length;
   }   

   pop()
   // 剪切数组最后一位, 返回值是当前剪切的值;    

   shift()
   // 剪切数组第一位, 返回值是当前剪切的值;

   unshift()
   // 在数组最前添加数据, 返回值是数组的长度;

   sort(fn) 
   // 排序 
   // 1. 必须写两个形参      
   // 2. 看返回值 1) 当返回值为负数时, 前面的数放在前面
   //            2) 为正数, 后面的数放在前面
   //            3) 为0, 不动
   arr.sort(function (a, b) {
        return a - b;    
   });     

   reverse()
   // 逆反(颠倒)顺序  
   
   splice(从第几位开始, 截取长度, 切口处添加新数据)    
   // 可以添加,删除,改。返回值是剪切的值      

4. 不改变原数组
   concat()
   // 链接数组  arr.concat(arr1);  返回值为新数组;

   join()
   // 参数必须是字符串,把数组转成字符串,以参数来链接。

   toString()
   // 把数组转为字符串 

   slice(从该位开始截取, 截取到该位);
   // 截取


#### 类数组
1. 属性要为索引(数字)属性, 必须有length
2. 不具有数组所具有的方法
可以给类数组添加数组方法,如push: Array.prototype.push
如果添加splice方法则就跟数组长一样了 [1, 2, 3]

var obj = {
    "0": ‘a‘,
    "1": ‘b‘,
    "2‘: ‘c‘,
    "length": 3,
    "push": Array.prototype.push,
    "splice": Array.prototype.splice
}

好处: (类数组push是根据length来替换)
Array.prototype.push = function (target) {
    obj[obj.length] = target;
    obj.length ++;
}

以上是关于[记录] JavaScript 中的数组操作的主要内容,如果未能解决你的问题,请参考以下文章

javascript数组的增删改和查询

JavaScript数组

C 语言数组 ( 数组取值操作 | array[i][j] 用法 等价于 *( *(array = i) + j ) 用法 | 下标操作到指针操作演化过程 )

如何从 jquery 或 javascript 中的两个不同数组中查找唯一记录?

使用 javascript 和 Postman 计算 JSON 数组中的记录

一些我容易混淆的知识(关于数组的操作对字符串的操作)