JavaScript内置对象-1Array(数组)

学习目标

1.掌握任何创建数组

2.掌握数值元素的读和写

3.掌握数组的length属性

如何创建数组

创建数组的基本方式有两种:

1.使用Array构造函数

语法:new Array()

小括号()说明:

(1)预先知道数组要保存的项目数量

(2)向Array构造函数中传递数组应包含的项

2.使用数组字量表示法:由一对包数组项的方括号[]表示,多个数组项之间以逗号隔开。

数组元素的读写

读取和设置值时,使用方括号[]并提供相应的索引

说明:索引是从0开始的正整数

数组长度

语法:array.length

功能:获取数组array的长度

返回值:number

说明:

1.通过设置legth可以从数组的末尾移除项或向数组中添加新项。

2.当一个值放在超出当前数组大小的位置上时,数组就会重新计算其长度值,长度值等于最后一项的索引加1.

<script>
       // 创建一个保存颜色的数组
      /* var colors=new Array(3);
       colors[0]="#f00";
       colors[1]="#0f0";
       colors[2]="#00f";
       console.log(colors);
       var nums=new Array(1,3,6,9);
       //console.log(nums);
       var cols=["red","yellow","green"];
       //console.log(cols);
       var infos=[6,"marry",true];
       //console.log(infos);
       console.log(cols[5]);  // 读取cols这个数组中索引为1的值*/
       var arr=["a","b","c","d"];
       //console.log(arr.length);  // 4
       //arr.length=2;
       //arr[99]="z";
       //console.log(arr.length); // 100
       // 数组的遍历
       for(var i=0;i<arr.length;i++){
          console.log(arr[i]);
       }
     </script>

<script>
       // filter()
       var nums=[1,2,5,8,10,9,3,6];
       // 将nums这个数组中所有大于3的值都取出来存到一个新数组
       function filterArray(arr){
          var newArr=[],i,len=arr.length;
          for(i=0;i<len;i++){
            if(arr[i]>3){
               newArr.push(arr[i]);
            }
          }
          return newArr;
       }
       var newNums=filterArray(nums);
       //newNums.sort(function(a,b){return a>b});
       //console.log(newNums);

var newNums2=nums.filter(function(item,index,arr){
          return item>3;
       })
       // 将nums这个数组中所有的偶数打印出来
       var newNums3=nums.filter(function(item,index,arr){
           if(item%2==0) return item;
       })
       console.log(newNums3);
    </script>

<script>
        var nums=[1,6,8,9,11];
        var sum=nums.reduce(function(prev,cur,index,array){
           return prev+cur;   // prev 2
        })
        console.log(sum);
    </script>

<script>
        var nums=[3,8,5,7,6];
        var newNums=nums.map(function(item,index,array){
            return item*2;
        })
        console.log(nums);
        var strs=["display","transform","transition"];
        var newstrs=strs.map(function(item,index,array){
            return "-webkit-"+item;
        })
        console.log(newstrs);
        var colors=["red","green","blue"];
        colors.forEach(function(item,i,array){
           console.log(item);
        })
    </script>

学习目标

掌握数组的栈方法:

1.push()

2.unshift()

3.pop()

4.shift()

push()

语法:arrayObject.push(newele1,newele2,...,neweX)

功能:把它的参数顺序添加到arrayObject的尾部。

返回值:把指定的值添加到数组后的新长度。

unshift()

语法:arrayObject.unshift(newele1,newele2,...neweX)

功能:把它的参数顺序添加到arrayObject的开头。

返回值:把指定的值添加到数组后的线长度。

pop()

语法:arrayObject.pop()

功能:删除arrayObject的最后一个元素

返回值:被删除的那个元素

Shift()

语法:arrayObject.shift()

功能:删除arrayObject中的第一个元素

返回值:被删除的那个元素

<script>
       // push
       var colors=new Array("red","green");
       var len=colors.push("blue","yellow","blank");
       console.log(len);
       // unshift
       var nums=[2,7,8,6];
       var size=nums.unshift(99,66);
       // pop
       var n=nums.pop();
       console.log(nums);
       // unshift
       var m=colors.shift();
       console.log(m);
    </script>

学习目标

1.掌握数组的转换方法

2.掌握数组的重排序方法

Join()

语法:arrayObject.join(separator)

功能:用于把数组中所有元素放入一个字符串。

返回值:字符串。

Reverse()

语法:stringObject.reverse()

功能:用于颠倒数组中元素的顺序。

返回值:数组

Sort()

语法:arrayObject.sort(sortby)

功能:用于对数组元素进行排序。

返回值:数组

说明:

1.即使数组中的每一项都是数值,sort()方法比较的也是字符串。

2.Sort()方法可以接受一个比较函数作为参数。

<script>
       // join
       var nums=[2,4,5];
       var str=nums.join();  //2,4,5
       var words=["border","left","color"];
       // border-left-color
       var wordstr=words.join("-");
       console.log(wordstr);
       // reverse
       nums.reverse();
       console.log(nums);
       var strs=["a","b","c","d"];
       // 返回dcba这个字符串
       var newstr=strs.reverse().join("")
       console.log(newstr);
       // 29,5,24,17,32
       var arr=[9,23,15,-99,88,12,-2];
       // 降序 return 参数1<参数2
       //arr.sort(function(a,b){return a<b});
       // 升序 return 参数1>参数2
       arr.sort(function(a,b){return a>b});
       console.log(arr);
    </script>

<script>
      // 写一个函数,返回某个值在这个数组中出现了多少次
      var nums=[8,2,5,6,8,6,7,9];
      function getTimes(arr,num){
         // 次数
         var times=0,i;
         // 遍历数组
         for(i=0;i<arr.length;i++){
            // 比较数组中的每一值是否和num相等
            if(arr[i]==num){
               // 次数+1
               times+=1;
            }
         }
         return times;
      }
      var times1=getTimes(nums,99);
      var times2=getTimes(["a","c","a","d"],"a");
      console.log(times1);
      console.log(times2);
      // 封装一个方法,实现reverse()的功能
      // 数组翻转
      function reverseArr(arr){
         // 新数组
         var newArr=[];
         // 遍历数组,从最后一个值开始取
        /* for(var i=arr.length-1;i>=0;i--){
            // 将每一个值追加到新数组的最后
            newArr.push(arr[i]);
         }*/
         for(var i=0;i<arr.length;i++){
            newArr.unshift(arr[i])
         }
         return newArr;
      }
      var newArr1=reverseArr([1,2,4,9,6]);
      var newArr2=reverseArr(["o","l","l","e","h"]);
      console.log(newArr1);
      console.log(newArr2.join(""));
    </script>

学习目标

1.掌握数组的操作方法:

concat()

Slice()

concat()

语法:arrayObject.concat(arrayX,arrayX,...,arrayX)

功能:用于链接两个或多个数组。

返回值:数组

slice()

语法:arrayObject.slice(start,end)

功能:从已有的数组中返回选定的元素。

参数:Start(必需)规定从何处开始选取,如果是负数,那么它规定从数组尾部开

算起的位置。

End(可选)规定从何处结束选取,该参数是数组怕片断结束的数组下标。

说明:1.如果没有指定end,那么切分的数组包含从start到数组结束的所有元素。

2.如果slice()方法的参数中有一个负数,则用数组长度加上数来确定相应的位置。

返回值:数组。

<script>
      var arr1=["a","b","c"],
          arr2=["d","e",1,3],
          arr3;
      // concat
      arr3=arr1.concat(arr2,["m",99,8]);
      console.log(arr3);
      // slice(start,end) end下标
      var colors=["red","green","blue","yellow","orange"];
      //var newColors=colors.slice(1,3);
      //var newColors2=colors.slice(2,4);
      var newColors3=colors.slice(-4,3); // 1,3
      console.log(newColors3);
      // 完成以下代码段,实现b数组对a数组的拷贝,方法越多越好
      var a=[1,"yes",3],
          b;
      // 1、数组遍历,push
      /*b=new Array();
      for(var i=0;i<a.length;i++){
         b.push(a[i]);
      }*/
      // 2、concat()
      b=[].concat(a);
      // 3、slice();
      b=a.slice(0);
      console.log(b);
    </script>

学习目标

1.掌握使用splice()方法删除数组项

2.掌握使用splice()方法插入数组项

3.掌握使用splice()方法替换数组项

删除

语法:arrayObject.splice(index,count)

功能:删除从index处开始的零或多个元素。

返回值:含有被删除的元素数组。

说明:count是要删除的项目数量,如果设置为0,则不会删除项目。

如果不设置,则删除从index开始所有值。

插入

语法:arrayObject.splice(index0,item1,.....,itemX)

功能:在指定位置插入值

参数:Index:起始位置

0:要删除的项数

Item1....itemX:要插入的项

返回值:数组

替换

语法:arrayObject.splice(index,count,item1,....,itemX)

功能:在指定位置插入值,且同时删除任意数量的项

参数:Index:起始位置

count:要删除的项数

Item1,...itemX:要插入的项

返回值:从原始数组中删除的项(如果没有删除任何项,则返回空数组)

<script>
       var arr=["a","b","c","d","e","f"];
       // 删除
       //var delArr=arr.splice(2,3);
       // 插入
       //var insertArr=arr.splice(3,0,"m","n",88);
       // 替换
       var replaceArr=arr.splice(1,2,"x","y","z");
       console.log(arr);
       console.log(replaceArr);
    </script>

学习目标

1.掌握ECMAScript为数组实例添加的两个位置方法:

IndexOf()

lestIndexOf()

indexOf()

语法:arrayObject.indexOf(searchvalue,startIndex)

功能:从数组的开头(位置0)开始向后查找。

参数:searchvalue:必须,要查找的项;

startIndex:可选,起点位置索引。

返回值:number,查找的项在数组中的位置,没有找到的情况下返回-1.

lastIndextOf()

语法:arrayObject.lastIndexOf(searchvalue,startIndex)

功能:从数组的末尾开始向前查找。

参数:searchvalue:必须,要查找的项

startIndex:可选,起点位置的索引。

返回值:number,查找的项在数组中的位置,没有找到的情况下发回-1.

说明:1.在比较第一个参数与数组中的每一项时,会使用全等操作符,即要求查找的项必须严格相等。

2.数组的位置方法是ECMAScript为数组实例新增的,所以支持的浏览器只有:

IE9+、Firefox2+、Safari3、Opera9.5、Chrome。

<script>
       var nums=[1,7,5,7,8,1,6,9];
       //var pos=nums.indexOf(7,2);
       //var pos=nums.lastIndexOf(1);
       var pos=nums.indexOf("7");
       console.log(pos);
       // 封装一个方法实现indexOf的功能
       function ArrayIndexOf(arr,value){
          // 检测value在arr中出现的位置
          for(var i=0;i<arr.length;i++){
             if(arr[i]===value){
                return i;
             }
          }
          return -1;
       }
       var pos2=ArrayIndexOf(nums,"1");
       console.log(pos2);
    </script>

JavaScript中的内置对象-8--1.Array(数组)-Array构造函数; 数组的栈方法; 数组的转换方法; 数组的操作方法; 删除-插入-替换数组项; ECMAScript为数组实例添加的两个位置方法;的更多相关文章

  1. javascript中的内置对象

    2015.12.1 javascript中的内置对象 复习: 1.js中的内置函数 alert prompt write parseInt parseFloat eval isNaN document ...

  2. javaScript中Math内置对象基本方法入门

    概念 Math 是javaScript的内置对象,包含了部分数学常数属性和数学函数方法. Math 不是一个函数对象,用户Number类型进行使用,不支持BigInt. Math 的所有属性与方法都是 ...

  3. javascript中的内置对象和数据结构

    目录 简介 基础类型 undefined Boolean和Boolean对象 Number和BigInt String Symbol null Object Function Date Array K ...

  4. javascript中的内置对象总结

    内置对象 标准内置对象 Object Object.create Object.prototype.toString Object.prototype.hasOwnProperty Boolean S ...

  5. JavaScript中的内置对象-8--3.Math-Math对象的方法-min()- max()- ceil() - floor()- round()- abs(); Math对象的random()方法;

    JavaScript内置对象-3.Math(数值) 学习目标 1.掌握Math对象的方法: min() max() ceil() floor() round() abs() Math.min() 语法 ...

  6. JavaScript中的内置对象-8--2.String-符串对象 方法; 截取方法; 综合应用; 其他方法;

    JavaScript内置对象-2String(字符串) 学习目标 1.掌握字符串对象 方法: charAt() charCodeAt() indexOf() lastIndextOf() charAt ...

  7. JavaScript(九):JavaScript中的内置对象

    一.对象的概念 对象是一种特殊的数据类型(object). 拥有一系列的属性和方法. 分为内置对象和自定义对象. 二.String对象 String对象用来支持对于字符串的处理. 1.属性 lengt ...

  8. 了解 JavaScript 中的内置对象

    所有编程语言都具有内部(或内置的)对象来创建 语言的基本功能.内部对象是 您编写自定义代码所用语言的基础, 该代码基于您的想象实现自定义功能.JavaScript 有许多 将其定义为语言的内部对象.本 ...

  9. JavaScript中的内置对象-8--4.date对象中-获取,设置日期时间的方法; 获取,设置年月日时分秒及星期的方法;

    学习目标 1.掌握创建日期对象的方法 2.掌握date对象中获取日期时间的方法 3.掌握date对象中设置日期时间的方法 如何创建一个日期对象 语法:new Date(); 功能:创建一个日期时间对象 ...

随机推荐

  1. 克隆linux系统网卡问题

    如果没有 ifcfg-eth0  手动创建 删掉uuid uwaddr 保存退出 然后清空 >/etc/udev/rules.d/70-persistent-net.rules 然后重启 reb ...

  2. 把旧系统迁移到.Net Core 2.0 日记 (17) --多租户和SoftDelete

    在EF Core 2.0版本中出现了全局过滤新特性即HasQueryFilter,它出现的意义在哪里?能够解决什么问题呢? 通过HasQueryFilter方法来创建过滤器能够允许我们对访问特定数据库 ...

  3. Struts 2 初步入门(六)之处理结果类型

    Struts2 处理流程: 用户请求--->struts框架--->Action控制器--->struts框架--->视图资源 xml配置文件里: <result nam ...

  4. Win10系列:WinJS库控件

    在介绍了如何使用标准的HTML控件以及WinJS库中提供的新控件之后,下面来着重介绍WinJS库中几种常用的控件. (1)ListView控件 在开发Windows应用商店应用时可以使用ListVie ...

  5. C++解析六-继承

    面向对象程序设计中最重要的一个概念是继承.继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易.这样做,也达到了重用代码功能和提高执行时间的效果.当创建一个类时,您不需要重新编 ...

  6. python vue 项目

    http://www.jianshu.com/p/fe74907e16b9 mac 电脑,亲测可以,可以看下开源的写法及思路

  7. java将字符串根据空格进行分割,使用split方法

    public class D { public static void main(String[] args) { String b = "Hello Java World"; S ...

  8. Values & Reference:值和引用

    var a = 2; var b = a; //b 是 a 的值的一个副本 b++; a; b; var c = [1, 2, 3]; var d = c; // d 是 值[1, 2, 3]的一个引 ...

  9. 学习Linux系统的方法经验

    Linux系统是一个开源的高效的以命令行为主的操作系统,主要用于服务器操作系统领域.对于Linux操作系统更多详细准确的解释大家可以网上找到<Linux就该这么学>的第0章介绍的比较详细: ...

  10. MYSQL基础知识小盲区

    MYSQL必会的知识 命令行 启动mysql:     mysql  -u用户名 -p密码 显示表中的各列详细信息:    show columns form tablename  等价于  desc ...