迁移时间:2017年5月25日08:05:33

UpdateTime--2017年3月31日16:29:08

一、数组(Array)

  (一)用法

//js声明数组的两大类方式
// 第一类(通常使用)
var array1 = [];//初始化
var array2 = [1,2,3];//声明并赋值
array2[2] = 4;//指定固定位置数组元素的值
array2.push(6);//1,2,4,6
// 第二类
var array3 = new Array();
array3.push("张三");
var array4 = new Array(3);//声明数组并指定长度
array4[0] = "张三";
array4.push("name");//张三,,,name

  注意:

      与Java不同的两点:

     a.java只能给指定的数组元素赋值;(js还可以通过push()方法给数组添加元素)

     b.java如果指定了数组长度,就不能数组越界。(js可以)

    1.1.1 push()方法说明

      方式一:声明的数组没有指定长度

       1.1.1.1 如果没有给指定元素赋值,调push()方法添加元素,会从元素下标为0开始插入;

       1.1.1.2 如果给指定元素赋值后,再调用push()方法添加元素,会从指定元素下标+1的位置开始插入;

      举例:

var array3 = new Array();
array3[8] = 'aa';
array3.push("张三");//,,,,,,,,aa,张三    

      方式二:声明数组时,指定了长度

        调用push()方法添加元素,会从最后一个元素下标+1(即从下标为长度n)的位置开始插入(即:允许越界);

       举例:

var array4 = new Array(3);//声明数组并指定长度
array4[0] = "张三";
array4.push("name");//张三,,,name

       区别: 

         第一类方法与第二类方法的不同之处在于:第一类不能初始化数组长度,但是没有必要指定数组长度,就算指定了长度,数组越界时也不会抛出异常

  (二)操作数组

    1.2.1 增、改、删

    增:一般使用push()方法,也可使用指定元素下标进行添加;改:指定元素下标进行修改;删:指定元素下标的值为null

    举例:

var array = new Array();
array.push("张三");//增加
array.push("李四");
array.push("王五");
array[1] = "赵六";//修改
array[2] = null;//删除

    1.2.2 迭代(遍历)数组(查)

var array = new Array();
array.push("张三");
array.push("李四");
array.push("王五");
/**
* 方法一(推荐使用)
*/
for(var index in array) {
console.log(array[index]);
}
/**
* 方法二:使用for循环
*/
for(var i = 0; i < array.length; i++) {
console.log(array[i]);
}

UpdateTime--2017年4月1日11:04:55

UpdateTime--2017年6月30日18:33:23

  使用jQuery实现

/**
* 方法三:使用$.each()方法
* 第一个参数:数组;
* 第二个参数:数组元素索引;
* 第三个参数:数组元素值
*/
$.each(array, function (index, value) {
console.log(index + "," + value);
});

  变形:

/**
* 方法四:$('数组').each(function(带参){});
*/
$(array).each(function (index,value) {
console.log(index + "," + value);
});

  使用javascript实现

/**
* 方法五:直接使用forEach()方法(不建议使用)
* 第一个参数:数组元素值;
* 第二个参数:数组元素索引
*/
array.forEach(function(value,index) {
console.log(value + ',' + index);
}); 

  注意:

       1.虽然javascript也可以像java那样有自己的foreach方法(方法四),但是IE9下版本不支持,所以不推荐使用。(若非得使用js实现,转到文章:js自定义方法)

     2.对于方法一,java中没有这种迭代方式。

  UpdateTime--2017年9月7日16:01:12

  (三) 格式转换

  3.1 将数组转换成字符串

  需要使用join()方法

  语法:

    arrayObject.join(separator)

  参数描述:

    可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

  返回值:

    返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的。

  举例:

var array = ["element1","element2",10];
alert(array.join());//element1,element2,10

  UpdateTime--2017年9月8日09:11:43

  3.2 将数组转换成JSONArray

// 1.声明一个数组对象[]并赋值
var array = ["element1","element2",10];
// 2.声明一个JSONArray对象
var JSONArray = {};
// 3.对数组进行迭代,并插入到json对象中
for (var i in array) {
// 以元素下标为key,该元素为value
JSONArray[i] = array[i];
}
alert(JSONArray[0]);// element1

  

 

javascript Array(数组)的更多相关文章

  1. JavaScript Array 数组方法汇总

    JavaScript Array 数组方法汇总 1. arr.push() 从后面添加元素,返回值为添加完后的数组的长度 var arr = [1,2,3,4,5] console.log(arr.p ...

  2. JavaScript Array数组方法详解

    Array类型是ECMAScript中最常用的引用类型.ECMAScript中的数据与其它大多数语言中的数组有着相当大的区别.虽然ECMAScript中的数据与其它语言中的数组一样都是数据的有序列表, ...

  3. javascript Array数组详解 各种方法

    1.数组的声明方法(1): arrayObj = new Array(); //创建一个数组.复制代码 代码如下: var arr1 = new Array(); (2):arrayObj = new ...

  4. javascript之数组对象与数组常用方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. for 循环 和 Array 数组对象

    博客地址:https://ainyi.com/12 for 循环 和 Array 数组对象方法 for for-in for-of forEach效率比较 - 四种循环,遍历长度为 1000000 的 ...

  6. JavaScript的json和Array及Array数组的使用方法

    1.关于json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.也可以称为数据集和数组类似,能够存数据! //Ar ...

  7. JavaScript Array(数组)对象

    一,定义数组 数组对象用来在单独的变量名中存储一系列的值. 创建 Array 对象的语法: new Array(); new Array(size); new Array(element0, elem ...

  8. javascript中数组Array的方法

    一.常用方法(push,pop,unshift,shift,join)push pop栈方法,后进先出var a =[1,2,3];console.log(a.push(40)); //4 返回数组的 ...

  9. Javascript进阶篇——( JavaScript内置对象---下)--Array数组对象---笔记整理

    Array 数组对象数组对象是一个对象的集合,里边的对象可以是不同类型的.数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的数组定义的方法: 1. 定义了一个空数组: var ...

随机推荐

  1. hdu 1402(FFT乘法 || NTT乘法)

    A * B Problem Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  2. 【找规律】【二进制拆分】hdu6129 Just do it

    给你数列a,问你对它作m次求前缀异或和之后的新数列是什么. 考虑a1对最终生成的数列的每一位的贡献,仅仅考虑奇偶性, 当m为2的幂次的时候,恰好是这样的 2^0 1 1 1 1 1 ... 2^1 1 ...

  3. 【推导】Codeforces Round #411 (Div. 1) B. Minimum number of steps

    最后肯定是bbbb...aaaa...这样. 你每进行一系列替换操作,相当于把一个a移动到右侧. 会增加一些b的数量……然后你统计一下就行.式子很简单. 喵喵喵,我分段统计的,用了等比数列……感觉智障 ...

  4. 【2-SAT(tarjan)】BZOJ1997-[Hnoi2010]Planar

    [题目大意]给出一张存在哈密顿回路的无向图,判断是否是平面图.[思路]首先平面图的一个性质:边数<=点数*3-6因为存在哈密顿回路,可以将回路看作是一个圆,考量不再哈密顿回路中的边.如果两天边相 ...

  5. 【高斯消元解xor方程】BZOJ1923-[Sdoi2010]外星千足虫

    [题目大意] 有n个数或为奇数或为偶数,现在进行m次操作,每次取出部分求和,告诉你这几次操作选取的数和它们和的奇偶性.如果通过这m次操作能得到所有数的奇偶性,则输出进行到第n次时即可求出答案:否则输出 ...

  6. Java本地方法(native方法)的实现

    Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能. 可以将 ...

  7. Leveldb源码解析之Bloom Filter

    Bloom Filter,即布隆过滤器,是一种空间效率很高的随机数据结构. 原理:开辟m个bit位数组的空间,并全部置零,使用k个哈希函数将元素映射到数组中,相应位置1.如下图,元素K通过哈希函数h1 ...

  8. RequireJS 与 SeaJS 的异同

    相同之处 RequireJS 和 SeaJS 都是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更简单自然. 不同之处 两者的区别如下: 定位有差异.Re ...

  9. Elasticsearch-Kibana 5.5.1插件安装

    说明:比如Elasticsearch的版本和Kibana的版本保持一致,方便排查问题.一切的安装的运行建议不要用root权限,最好是当前用户下的权限.Kibana版本变化有点快,不同的版本有不同的配置 ...

  10. 用GDB 调试Java程序

      陈皓 http://blog.csdn.net/haoel 背景 想要使用GDB调试程序,就需要用GNU的编译器编译程序.如:用GCC编译的C/C++的程序,才能用GDB调试.对于Java程序也是 ...