• JavaScript的数组API函数


    ㈠数组转字符串

    String(arr):将arr中的每个元素转为字符串,用逗号分隔

        固定套路:对数组拍照:用于鉴别是否数组被修改过

    arr.join("连接符"):将arr中每个元素转为字符串,用自定义的连接符分隔

    // 将字符拼接为单词
    var chars = ["H","e","l","l","o"];
    console.log(chars.join("")); //Hello

     

    ⑶固定套路

    ①将字符组成单词:chars.join("")->  无缝拼接 

    扩展:判断数组是空数组:arr.join("")==""

    ②将单词组成句子:words.join("")

    ③将数组转化为页面元素的内容:

    "<开始标签>"+ 

    arr.join("</结束标签><开始标签>") 

    +"</结束标签>"

     

    ㈡拼接和选取

    不直接修改原数组,而返回新数组!

    ⑴拼接

    concat()拼接两个或更多的数组,并返回结果

    var newArr = arr1.concat(值1,值2,arr2,值3,...)

    将值1,值2和arr2中每个元素,以及值3都拼接到arr1的元素之后,返回新数组

    其中:arr的元素会被先打散,再拼接

     

    var arr1 = [90,91,92];
    var arr2 = [80,81];
    var arr3 = [70,71,72,73];
    var arr4 = arr1.concat(50,60,arr2,arr3);
    
    console.log(arr1);      //90,91,92 现有数组值不变
    console.log(arr4);     //90,91,92,50,60,80,81,70,71,72,73

     

    ⑵选取

    slice()返回现有数组的一个子数组

    var subArr = arr.slice(starti,endi+1)

    选取arr中starti位置开始,到endi结束的所有元素组成新数组返回——原数组保持不变

    强调:凡是两个参数都是下标的函数,都有一个特性:

               含头不含尾

     

    var arr1 = [10,20,30,40,50];
    var arr2 = arr1.slice(1,4);     //20,30,40
    var arr3 = arr1.slice(2);      //30,40,50
    var arr4 = arr1.slice(-4,-2);   //20,30

    console.log(arr1) //10,20,30,40,50 原数组元素不变

     

    ⑶选取简写

    ①一直选取到结尾:可省略第二个参数

    ②如果选取的元素离结尾近:可用倒数下标:

    arr.slice(arr.length-n,arr.length-m+1);

    可简写为:arr.slice(-n,-m+1);

    ③复制数组:

    arr.slice(0,arr.length);

    可简写为:arr.slice();

     

    ㈢修改数组

    ⑴删除

    splice 直接修改原数组

    arr.splice(starti,n);

    删除arr中starti位置开始的n个元素不考虑含头不含尾

    其实:var deletes = arr.splice(starti,n);

    返回值deletes保存了被删除的元素组成的临时数组

     

    var arr1 = [10,20,30,40,50];
    var arr2 = arr.splice(2,1);
    //var arr2 = arr1.splice(2,2,21,22,23);
    //var arr2 = arr1.splice(2,2,[91,92,93]);
    
    console.log(arr1);
    conlole.log(arr2);

    ⑵插入

    arr.splice(starti,0,值1,值2,...)

    在arr中starti位置,插入新值1,值2,...原starti位置的值及其之后的值被向后顺移

     

    ⑶替换

    其实就是删除旧的,插入新的

    arr.splice(starti,n,值1,值2,...)

    先删除arr中starti位置的n个值,再在starti位置插入新值

    强调:删除的元素个数和插入的新元素个数不必一致。

     

    ㈣颠倒数组

    reverse() 颠倒数组中元素的顺序

    arr.reverse()

    var arr1 = [10,20,30,40,50];
    arr1.reverse();
    
    console.log(arr1);

     

    强调:仅负责原样颠倒数组,不负责排序

     

    ㈤排序

    将元素按从小到大的顺序重新排列

    ⑴排序API

    arr.sort():默认将所有元素转为字符串再排列

    问题:只能排列字符串类型的元素

    解决:使用自定义比较器函数

     

    ⑵排序算法

    (手写)冒泡 快速 插入排序

  • 相关阅读:
    xpath语法速查
    负载均衡设计
    Nginx负载均衡配置实例详解
    实现基于DNS的负载均衡
    建立双线服务器(双线游戏服务器)
    python学习
    python多线程概念
    python 多线程就这么简单(续)
    打包一沓开源的 C/C++ 包管理工具送给你!
    讲解开源项目:功能强大的 JS 文件上传库
  • 原文地址:https://www.cnblogs.com/shihaiying/p/11605261.html
Copyright © 2020-2023  润新知