一、数组语法格式

var name=[item1,item2,......]

二、数组的声明创建

var arr=new Aarray( )    //声明一个空数组对象
var arr=new Array(length) //声明一个指定长度的数组
var arr=[元素] //声明数组(最常用方法)

  注:js中的数组声明不用指定长度,js的数组长度不固定,会随着元素的数量改变而改变。

a:判断是否是数组类型(typeOf arr值为object)

console.log(Array.isArray(xxxx))→ 返回值为true或者false

三、通过for循环遍历数组

for(var i=0;i<arr.length;i++)
alert(arr[i]);
} for-in:
for (var p in fruits){ //遍历数组和对象
document.write(p+'<br>') //p遍历下标,
document.write(fruits[p]+"<br>");
}

四、forEach()方法调用于数组的每个元素,并将元素传递给回调函数。对于空数组是不会执行回调函数的。

    //回调函数(callback)是以一个以形参形式传递给另一个函数的函数,并且该函数必须等另一个函数执行完才会被调用

var text = "";
fruits.forEach(myFunction);
document.write(text) ;
function myFunction(value) {
text += value + "<br>";
}
console.log(typeof fruits.forEach);

五、isArray识别数组

var fruits = ["Banana", "Orange", "Apple", "Mango"];
alert(Array.isArray(fruits)); //语法:Array.isArray(obj)

六、toString(将逻辑值转换为字符串,并返回结果)

var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.write(fruits.toString("")+'<br>');
console.log(typeof(fruits)); //类型对象
console.log(typeof(fruits.toString()));//toString转换成字符串
join() 方法也可将所有数组元素结合为一个字符串。
document.write(fruits.join("*")) ;

七、Popping 和 Pushing、shift、unshift、delete、splice、concat、slice

a:pop()方法从数组中删除最后一个元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop()
document.write(fruits+'<br>');
//返回被删除的值:Banana,
document.write(fruits.pop()+'<br>');

b:push()方法(在数组结尾处)向数组添加一个新的元素

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi")
document.write(fruits) ;
//返回push() 方法返回新数组的长度:
document.write(fruits.push("Kiwi")+'<br>') ; //5

c:shift()会删除首个数组元素,并把所有其他元素“位移”到更低的索引。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift();
document.write(fruits+'<br>') ;
console.log(fruits[0]); //Orange
document.write(fruits.shift()+'<br>') ; 

d:unshift() 方法(在开头)向数组添加新元素,并“反向位移”旧元素.

var fruits = ["Banana", "Orange", "Apple", "Mango"];

  fruits.unshift("lemon")
  document.write(fruits+'<br>');
  console.log(fruits[0]); //lemon
  document.write(fruits.unshift("lemon")) ;//5 unshift() 方法返回新数组的长度 

e:delete 运算符来删除,删除元素会在在数组留下未定义的空洞。

var fruits = ["Banana", "Orange", "Apple", "Mango"]; 

  delete fruits[0];
  document.write(fruits+'<br>')
  console.log("第一种水果是:" + fruits[0]);

f:splice() 方法可以进行添加,删除,替换.

var fruits = ["Banana", "Orange", "Apple", "Mango"];

  //第一个参数:定义了应添加新元素的位置(拼接)。
       //第二个参数:定义应删除多少元素。
  //第三个参数:插入元素
  //splice() 方法返回一个包含已删除项的数组
  //可以通过splice()替换数组元素

  var removed = fruits.splice(1,2, "Lemon", "Kiwi");
      document.write("新数组:<br>" + fruits+"<br>");
   document.write ( "已删除项:<br> " + removed +"<br>");
  //可以通过splice()删除数组元素
  var removed = fruits.splice(1,2);
    document.write("新数组:<br>" + fruits+"<br>");
  //可以通过splice()添加数组元素
  var removed = fruits.splice(0,0,"Lemon", "Kiwi");
    document.write("新数组:<br>" + fruits+"<br>");

g:concat合并(链接)数组.

  var first= [1, 2];
   var second= [3, 4, 5];
    document.write("第一个数组:"+first+"<br>");
    document.write("第二个数组:"+second+"<br>");
  var sum= first.concat(second);
    document.write( "合并结果:" + sum+"<br>");
  var three= [6, 7, 8];
    document.write("第三个数组:"+three+"<br>");
  var arr4 = first.concat( second,three);
    document.write("合并多个数组:" +arr4+"<br>") ;

h:slice() 方法用数组的某个片段切出新数组。/slice() 方法创建新数组。它不会从源数组中删除任何元素。

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];

    document.write(fruits + '<br>');
  var citrus = fruits.slice(1);//一个参数,从"orange"开始到结尾切出
  var citrus = fruits.slice(3);//从"Apple"开始到结尾切出
    document.write( citrus + "<br>" );
  console.log(citrus[0]);//返回Orange
   //slice() 从开始位置到结束位置切出,不包括结束位置。
  var citrus = fruits.slice(1,3);
    document.write("可接受两个参数" + citrus);//Orange,Lemon

 

js-08-数组学习的更多相关文章

  1. js 的概念和声明-js 的变量-js 的运算符和逻辑结构-js 的数组

    js 的概念和声明Js的概念和声明:问题:在网页的发展历程中,发现网页不能对用户的数据进行自动校验,和提供一些特效造成用户体验极差解决:使用JavaScript作用:可以让网页和用户之间进行直接简单的 ...

  2. js数组学习整理

    原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); // ...

  3. JS数组学习笔记

    原文:JS数组学习笔记 最近在备课数组,发现很多ES5的方法平时很少用到.细节比较多,自己做了大量例子和整理,希望对大家了解JavaScript中的Array有所帮助. 概念 数组是值的有序集合.每个 ...

  4. Knockout.Js官网学习(系列)

    1.Knockout.Js官网学习(简介) 2.Knockout.Js官网学习(监控属性Observables) Knockout.Js官网学习(数组observable) 3.Knockout.Js ...

  5. json2.js的初步学习与了解

    json2.js的初步学习与了解,想要学习json的朋友可以参考下. json2.js的初步学习与了解 1.)该js的下载地址是:http://www.json.org/json2.js 2.)在页面 ...

  6. 原生JS研究:学习jquery源码,收集整理常用JS函数

    原生JS研究:学习jquery源码,收集整理常用JS函数: 1. JS获取原生class(getElementsByClass) 转自:http://blog.csdn.net/kongjiea/ar ...

  7. Underscore.js 源码学习笔记(下)

    上接 Underscore.js 源码学习笔记(上) === 756 行开始 函数部分. var executeBound = function(sourceFunc, boundFunc, cont ...

  8. Underscore.js 源码学习笔记(上)

    版本 Underscore.js 1.9.1 一共 1693 行.注释我就删了,太长了… 整体是一个 (function() {...}());  这样的东西,我们应该知道这是一个 IIFE(立即执行 ...

  9. js内存深入学习(二)

    继上一篇文章 js内存深入学习(一) 3. 内存泄漏 对于持续运行的服务进程(daemon),必须及时释放不再用到的内存.否则,内存占用越来越高,轻则影响系统性能,重则导致进程崩溃. 对于不再用到的内 ...

  10. js内存深入学习(一)

    一. 内存空间储存 某些情况下,调用堆栈中函数调用的数量超出了调用堆栈的实际大小,浏览器会抛出一个错误终止运行.这个就涉及到内存问题了. 1. 数据结构类型 栈: 后进先出(LIFO)的数据结构  堆 ...

随机推荐

  1. springboot整合thymleaf模板引擎

    thymeleaf作为springboot官方推荐使用的模板引擎,简单易上手,功能强大,thymeleaf的功能和jsp有许多相似之处,两者都属于服务器端渲染技术,但thymeleaf比jsp的功能更 ...

  2. 解密国内BAT等大厂前端技术体系-百度篇(长文建议收藏)

    1 引言 整个业界在前端框架不断迭代中,也寻找到了许多突破方向,例如跨平台中的RN.Flutter,服务端GraphQL.Serverless,前端和客户端的融合越来越紧密,前端在Node和Elect ...

  3. CF832D Misha, Grisha and Underground

    有一棵n个节点的树,一共q 次询问 每次询问给定3个点,求两条起点终点在这三个点上且不完全重合的路径的最多公共节点数 简单LCA求距离,令a为汇合点,那么答案就是(dis(a,b) + dis(a,c ...

  4. git 使用详解(3)—— 最基本命令 + .gitignore 文件

    Git 基础 本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置:开始或停止跟踪某些文件:暂存或提交某 ...

  5. Spring代理模式(jdk动态代理模式)

    有动态代理和静态代理: 静态代理就是普通的Java继承调用方法. Spring有俩种动态代理模式:jdk动态代理模式 和 CGLIB动态代理 jdk动态代理模式: 代码实现: 房东出租房子的方法(继承 ...

  6. VBA/Excel-实例系列-04-求两个数组的交集

    原创: Z Excel高效办公之VBA 2017-03-10 Part 1:逻辑过程 已有两个数组,要求单个数组中信息无重复 以最短的数组作为循环,分别判断该数组中的元素是否在另一个数组中 如果某一元 ...

  7. 【解决】image ... could not be accessed on a registry to record its digest.

    [问题]image jmdiservice:1206 could not be accessed on a registry to record its digest. Each node will ...

  8. Linux中sed基础

    sed是一种流编辑器,它是文本处理中非常重要的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern spac ...

  9. 【Gitlab】371- GitLab从安装到全自动化备份一条龙

    原文地址[1]欢迎star 需求 1.在新服务器上安装并搭建好gitlab2.手动+自动将旧服务器上的gitlab备份3.手动+自动将gitlab备份包scp到新服务器上4.手动+自动恢复新服务器上的 ...

  10. C#中关于值类型和引用类型的区别

    小声哔哔 一直以来对于值类型与引用类型之间的区别都不是特别清晰,直到踩了坑.... 正好最新闲暇,便想着梳理梳理这一两年来遇到的奇葩问题和解决方案,顺便就把它给拎出来记一下,免得以后再摔跤 值类型与引 ...