zoukankan      html  css  js  c++  java
  • js 数组常用的操作函数整理

    平时多做企业应用开发,抱着实用为主,对前端技术理解得比较肤浅,下面就是肤浅地对 js 数组的属性和方法及对它操作的 jquery 方法做些记录;

    js 数组是 js 内建的一个非常强大数据类型,由于 js 是弱类型语言,所以一个数组可以保存多种类型的数据: 数字、字符串、对象、函数、布尔... ...;

    var arr = [1,{name:'Jonh',id:1001}, function(){console.log('test');},'hello world',true]; 

    常用访问数组元素的方法:

    for 和 for-in 在循环时,如果数组大小做了改变,使用起来会有所区别;

    var testArr1 = [1,2,3,4,5];
    
    // for,  因为 testArr1.length 是一个常数 5, 循环过程 testArr1 大小变了,循环次数还是 5;
    for(var i = 0; i < testArr1.length; ++i){
        if(i == 3) testArr1.push(6); // 添加一个元素;
        console.log(testArr1[i]); // 访问不到新加的元素 6; 
    }
    
    
    var testArr2 = [1,2,3,4,5]; 
    
    // for-in 如果循环过程中 testArr2 的大小变了, i 如果大于了改动后的 testArr2.length,会马上终止循环
    for(var i in tsetArr2){
      if(i==3)testArr2.push(6); // 添加一个元素; 
      console.log(testArr2[i]); // 可访问到新加的元素 6;    
    }

    jquery 循环: $.each, $.grep, $.map 与 for 最大不同是循环过程不能退出,即一定会访问数组中的每个元素到结束;而for 可以用 break 中断循环;

    var testArr = [1,2,3];
    
    //访问数组元素;
    $.each(arr,function(index,elem){
    });
    
    // 返回符合条件的元素,组成一个新的数组;
    //注意 function(elem,index) 第一个实参是元素,第二个才是元素的索引
    var newArr = $.grep(arr,function(elem,index){
         //condition
         return elem==1 or elem ==2; 
    });
    // newArr is [1,2]
    
    
    // 返回任意新的数组元素,组成 一个新的数组;
    var newArr = $.map(arr,function(index,elem){
        return 'test-' + index;
    });
    // newArr is ['test-1','test-2','test-3']; 

     识别数组:

    // 数组是一种特殊的 object 类型,typeof 拿到的只是 object; 
    typeof arr; // => object
    
    // 可用下面 2 种方法判断对象是否为数组
    arr.constructor.toString().indexOf('Array') > 0
    // 
    Object.prototype.toString.call(arr) == '[object Array]'

    常用方法:

    // join 将数组中的元素组合成一个字段串,元素之间用指定的字符串连接起来;
    arr.join(','); //"1,[object Object],function (){console.log('test');},hello world,true"
    
    // push 向数组添加新的元素, 数组改变;
    arr.push('new'); 
    
    // pop 弹出最后一个元素,数组改变;
    arr.pop(); // 'new'
    
    // slice(startIdx, count) 获取数组中一段连续的元素,组成一个新的数组;startIdx 开始索引,count 数量;
    arr.slice(0,1); //[1]; 
    
    // splice(startIdx,count,otherElems)  有强大的功能,包括: 插入,替换,删除;startIdx 开始索引, count (替换,删除)数量, 数组改变并返回一个新的数组;
    // 替换
    var testArr = [1,2,3,4,5]; 
    var retArr = testArr.splice(0,2,7,8,9);//retArr is [1,2], testArr is [7,8,9,3,4,5], "7,8,9" 是替换 "1,2"; 
    // 删除,省略 otherElems 就是删除
    var testArr = [1,2,3,4,5]; 
    testArr.splice(0,2); // testArr is [3,4,5]; 
    //插入,将 count =0 ,即不作替换直接插入
    var testArr = [1,2,3,4,5];
    testArr.splice(2,0,7,8,9); //testArr is [1,2,7,8,9,3,4,5]; 
  • 相关阅读:
    什么是webview
    juqery.fn.extend和jquery.extend
    LeetCode
    5. Longest Palindromic Substring
    42. Trapping Rain Water
    11. Container With Most Water
    621. Task Scheduler
    49. Group Anagrams
    739. Daily Temperatures
    3. Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/grissom007/p/4369854.html
Copyright © 2011-2022 走看看