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. 思科恶意加密TLS流检测论文记录——由于样本不均衡,其实做得并不好,神马99.9的准确率都是浮云啊,之所以思科使用DNS和http一个重要假设是DGA和HTTP C&C(正常http会有图片等)。一开始思科使用的逻辑回归,后面17年文章是随机森林。

    论文记录:Identifying Encrypted Malware Traffic with Contextual Flow Data from:https://songcoming.github. ...

  2. PE文件结构解析

    说明:本文件中各种文件头格式截图基本都来自看雪的<加密与解密>:本文相当<加密与解密>的阅读笔记. 1.PE文件总体结构 PE文件框架结构,就是exe文件的排版结构.也就是说我 ...

  3. Qt调用JS(二)

    转自:http://www.cnblogs.com/verstin/p/4908673.html <html> <script language="JavaScript&q ...

  4. 微信UnionId 部分开放

    以前要获得UnionID, 需要把公众号绑定到微信开放平台, 这个微信开放平台垃圾,还要300认证费. 今天突然发现在这个接口 https://api.weixin.qq.com/cgi-bin/us ...

  5. php composer 使用 以及 psr0和psr4的真正区别

    composer 使用 项目和库之间唯一的区别是,你的项目是一个没有名字的包 包名不区分大小写,但惯例是使用小写字母,并用连字符作为单词的分隔 入门比较好资源: 官网适合读一遍  https://do ...

  6. PHP中的Trait方法

    <?php /* * 自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait. * Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制. * Trait ...

  7. Object value iterator:值迭代器

    // ES5 // 对于数组,使用标准的 for 循环,其实这种方式并不是在遍历值,而是遍历下标来指向值!ES5中增加了一些数组迭代器:forEach.every.some // forEach:遍历 ...

  8. 比较不错的几款开源的WPF Charts报表控件

    UWP Community Toolkit 1. ModernUIChart Code: http://modernuicharts.codeplex.com/ Available Charts Co ...

  9. windows添加PDF虚拟打印机

    添加PDF虚拟打印机(果真姜还是老的辣,我摸索了两天没结果的事情,大佬轻轻松松两分钟搞定...) 这种PDF虚拟打印机的功能是将需要被打印的内容写到当前系统的指定目录下的指定文件中.整个过程都不需要连 ...

  10. 非图片格式如何转成lmdb格式--caffe

    链接 LMDB is the database of choice when using Caffe with large datasets. This is a tutorial of how to ...