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. Oracle 用户,角色,权限等

    权限管理是 Oracle 系统的精华,不同用户登录到同一数据库中,可能看到不同数量的表,拥有不同的权限.Oracle 的权限分为系统权限和数据对象权限,共一百多种,如果单独对用户授权,很囧,有一些用户 ...

  2. js 时间戳转特定格式的日期

    var Tools = {}; Tools.formatDate = function (fmt,timestamp) { if(timestamp){ var date = new Date(par ...

  3. summer_19th,Nov 2018

    一.内存管理: Cpython解释器的垃圾回收机制 一个没有绑定任何变量名的值被称为垃圾,即该值的引用计数为零. 二.变量值的三个特点: id: 内存地址 type: 数据类型 值 总结:id相同,值 ...

  4. js中如何返回一个存放对象的数组?

    我这边需要返回后台数据的形式是这样的 {[ { ", }, { ", }, { ", }, { ", }, { ", } ]} 页面是通过循环去获取每 ...

  5. Django ajax提交 登录

    一.url from django.contrib import adminfrom django.urls import pathfrom appo1 import views urlpattern ...

  6. String和StringBuffer互相转换

    String:不可变 StringBuffer:可变 StringBuffer 上的任何修改性的操作都是在同一个字符数组上进行的,所以修改其中任一个值 另一个的值也会随着改变! StringBuffe ...

  7. SignalR 前期简单配置

    一.随便你在哪个命名空间下新建一个Startup类,并在在该类中注册SignalR. using Owin; using System; using System.Collections.Generi ...

  8. 开窗函数 函数() OVER()

    -- 初始化 CREATE TABLE T_Person (FName VARCHAR2(20), FCity VARCHAR2(20), FAge INT, FSalary INT); INSERT ...

  9. Bootstrap datepicker 在弹出窗体modal中不工作

    解决办法 在 show 方法后面 添加 下面一段代码 $('#modalCard').modal('show');—例子 打开 弹出窗体 //$('#modalCard').modal('hide') ...

  10. SharePoint Framework 企业向导(八)

    博客地址:http://blog.csdn.net/FoxDave 构建关于SPFx自定义的计划 在SPFx引入的时候,你就需要对它进行规划了.规划要从介绍SPFx解决方案使用的新的技术栈开始.开 ...