zoukankan      html  css  js  c++  java
  • 数据结构——数组


    我本是在广州体育学院的一名体育生,后来通过一些巧合接触了前端,觉得挺有意思。一行行的代码能编写出一个炫酷的网页以及完成牛逼的用户交互。所以决定跨进it的领域,进行残忍的掉发修行。兜兜转转已经学习了有半年时间了。今天这是我写的第一篇博客,打算在此记录我在掉发之旅中的一些心得,同时也给自己做个总结,好了废话不多说,开始着手写吧。

    数组是在JS里经常遇到的数据类型。数组可存储同一系列的数据,也可在数组里存储不同数据类型的值。

    首先总结一下数组一些核心方法:{

                1、concat          拼接两个或多个数组,并返回结果              

                2、join               将数组所有元素拼接成字符串

                3、indexOf        返回第一个与给定参数的索引,没有则返回-1

                4、lastIndexOf  返回最后一个与给定参数的索引,没有则返回-1

                5、sort      给数组元素进行排序 

                6、toString     将数组作为字符串返回

                7、valueOf     将数组作为字符串返回

                等等

                    }


    创建一个数组 var arr=[ ];
    var arr1=new Array( );
    var arr2=new Array(5);//创建指定长度的数组

    也可以使用元素初始化数组:  var arr3=[1,2,3,4,5,6,7];//下文使用本数组做例子

    如果想知道一个数组里有几个元素即可使用 数组的length属性。譬如上面的arr3.length // 7

    如果想访问数组中特定位置的元素可使用数组括号加上元素的下标,比如arr3[0]//结果是1。数组下标是从0开始计算

    若想输出数组的全部元素,我们可以遍历数组

                        var num=' '//声明一个空变量   

                        for(var i=0;i<arr3.length;i++){

                          num+=arr3[i]

                         }

                        console.log(num)//输出数组的全部元素

    数组的添加、删除元素:

    1、添加元素:尾部添加元素push()、头部添加unshift()、还有一种指定位置添加splice(index,removelength,item1......,itemN),

    添加元素也可以直接赋值给数组,比如arr3[8]=2,这样等于在数组尾部添加了数字2

    2、删除元素:尾部删除并返回该元素pop()、头部删除元素shift()、指定位置删除splice(index,removelength)

    splice()方法里面参数index、removeindex是必需的。index是指定元素位置,removelength则是删除元素的个数(如果填写0则不删除),item1--itemN则是添加的元素,可以有N个值。

    3、数组合并:concat( )方法:arr3=[1,2,3,4,5,6,7];

                 newarr=[8,9];

                 arr3.concat(newarr)//合并两个数组,输出arr3=[1,2,3,4,5,6,7,8,9]

    4、join方法:将数组拼接成字符串形式返回。arr3.join(‘—’)//会返回"1-2-3-4-5-6-7"

    5、数组的排序:给定一个无序的数组narr=[1,3,5,7,3,2,6,2];我们可以直接用narr.sort()来排序没有问题。结果输出是//[1, 2, 2, 3, 3, 5, 6, 7]

    但是如果是narr1=[1,3,21,33,52,6]使用narr1.sort()进行排序输出结果是//[1, 21, 3, 33, 52, 6]

    为什么会这样,因为sort方法在比较时把元素默认成字符串进行比较

    那么既然传入的都是数字,我们可以给他一个方法,这样写narr1.sort(function(a,b){

                                return a-b 

                              })//这样在排序时传入的a,b就会进行比较,如果a>b那么就会返回正数,反之返回负数,相等返回0。sort方法会根据返回的值进行排序。

    如果还不明白那么我们可以写成function arrSort(a,b){

                    if(a>b){

                      return 1}else if(a<b){

                           return -1}else{

                               return 0}

                  }

                  narr1.sort(arrSort)//sort方法调用前面定义的arrSort()函数,然后用它进行排序数组。

    6、搜索:有两个方法,分别是indexOf以及lastIndexOf。在这里我们重新定义数组 var arr=[1,2,3,4,5,7,1];然后我们使用两种方法搜索数组里面的数字1,看下输出结果

    arr.indexOf(1)//返回索引是0,该方法返回第一个与给定元素匹配的索引

    arr.lastIndexOf(1)返回索引是6,该方法返回最后一个与给定元素匹配的索引

    7、还有forEach、slice、every等一些方法没有介绍,后面会陆续写完

    最后写一个小例子:已知斐波那契数列的第一个数字是1,第二个数字是2,从第三项开始,每一项等于前两项的和,求数列的前20个数字。

    var num=[];

    num[1]=1;

    num[2]=2;

    for(var i=3;i<20;i++){

    num[i]=num[i-2]+num[i-1]

    }

    for(var i=0;i<num.length;i++){

    console.log(num[i])

    }

  • 相关阅读:
    JSP
    token防止表单重复提交
    web应用程序性能优化
    js 优化
    文本查看及处理工具简单命令
    DNS之一---DNS服务及BIND服务,并实现DNS正向与反向解析
    企业级自动化运维工具应用实战ansible
    Linux小试牛刀
    Linux特殊权限及ACL权限
    文件的默认权限UMASK
  • 原文地址:https://www.cnblogs.com/xzhan/p/8989352.html
Copyright © 2011-2022 走看看