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. bootstrap居中

    1.页面 <div class="container"> <div class="row clearfix"> <div clas ...

  2. Spring Boot系列之配置日志输出等级

    我们都知道Spring boot 默认使用 logback作进行日志输出,那么 在配置Spring boot日志输出时有两种方式: 通过application.properties 配置文件的方式来配 ...

  3. 【LeetCode】成对交换节点

    e.g. 给定链表 1->2->3->4,返回 2->1->4->3 的头节点. 我写了个常见的从头节点遍历,少量的奇数个或偶数个数据都能成功重新排列.但链表过长时 ...

  4. 【LeetCode】Valid Parentheses合法括号

    给定一个仅包含 '('.')'.'{'.'}'.'['.']'的字符串,确定输入的字符串是否合法. e.g. "()"."()[]{}"."[()]( ...

  5. 数据标准化+网格搜索+交叉验证+预测(Python)

    Download datasets iris_training.csv from:https://github.com/tensorflow/tensorflow/tree/master/tensor ...

  6. 解决SSH Secure Shell 连接Liunx 有乱码情况。

    输入:echo $LANG:查看当前使用系统语言 locale :安装是否是LANG="zh_CN.UTF-8":说明已经安装中文语言 步骤1:用root账户登录linux系统,或 ...

  7. ftp主动模式与被动模式交互过程分析

    1.相关介绍 1.1主动模式和被动模式 主动模式:服务端通过指定的数据传输端口(默认20),主动连接客户端提交的端口,向客户端发送数据. 被动模式:服务端采用客户端建议使用被动模式,开启数据传输端口的 ...

  8. PAT-GPLT训练集 L1-043 阅览室

    PAT-GPLT训练集 L1-043 阅览室 注意:连续的S和E才算一次借还 代码: #include<iostream> #include<cstdio> using nam ...

  9. Linux的安装包命令/yum 与 Rpm

    1.Rpm安装包命令(以dhcp软件包为例)----Rpm安装软件包需要解决依赖性,因此特别麻烦(如图2被需要). rpm与yum安装的均为二进制软件包.类似于windows下载的软件包,可直接安装使 ...

  10. 对象关系_many2many

    jdbc: package demo.test.many2many; import java.util.HashSet; import java.util.Set; public class Stud ...