javascript Array(数组)
迁移时间: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(数组)的更多相关文章
- JavaScript Array 数组方法汇总
JavaScript Array 数组方法汇总 1. arr.push() 从后面添加元素,返回值为添加完后的数组的长度 var arr = [1,2,3,4,5] console.log(arr.p ...
- JavaScript Array数组方法详解
Array类型是ECMAScript中最常用的引用类型.ECMAScript中的数据与其它大多数语言中的数组有着相当大的区别.虽然ECMAScript中的数据与其它语言中的数组一样都是数据的有序列表, ...
- javascript Array数组详解 各种方法
1.数组的声明方法(1): arrayObj = new Array(); //创建一个数组.复制代码 代码如下: var arr1 = new Array(); (2):arrayObj = new ...
- javascript之数组对象与数组常用方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- for 循环 和 Array 数组对象
博客地址:https://ainyi.com/12 for 循环 和 Array 数组对象方法 for for-in for-of forEach效率比较 - 四种循环,遍历长度为 1000000 的 ...
- JavaScript的json和Array及Array数组的使用方法
1.关于json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.也可以称为数据集和数组类似,能够存数据! //Ar ...
- JavaScript Array(数组)对象
一,定义数组 数组对象用来在单独的变量名中存储一系列的值. 创建 Array 对象的语法: new Array(); new Array(size); new Array(element0, elem ...
- javascript中数组Array的方法
一.常用方法(push,pop,unshift,shift,join)push pop栈方法,后进先出var a =[1,2,3];console.log(a.push(40)); //4 返回数组的 ...
- Javascript进阶篇——( JavaScript内置对象---下)--Array数组对象---笔记整理
Array 数组对象数组对象是一个对象的集合,里边的对象可以是不同类型的.数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的数组定义的方法: 1. 定义了一个空数组: var ...
随机推荐
- shell 文本加密
第一种:[ Python 与 Bash Shell 的结合 ]这个命令会让你输入一个字符串,然后会再输出一串加密了的数字. 加密代码[照直输入]:python -c 'print reduce(lam ...
- C++中的error C2662,const的this指针问题
今天在写C++代码的时候遇到一个错误,涉及到了常量的this指针的问题. 简化后的代码如下: #include <iostream> #include <string> usi ...
- 五种常用的C/C++编译器对64位整型的支持
变量定义 输出方式 gcc(mingw32) g++(mingw32) gcc(linux i386) g++(linux i386) MicrosoftVisual C++ 6.0 long lon ...
- 【POJ 3974】Palindrome
http://poj.org/problem?id=3974 Manacher模板题.Menci的博客讲得很好 有一点:Menci的代码中的right我感觉是代表能延伸到的最右端点的右边的点,因为r( ...
- windows上同时安装两个版本的mysql数据库
一.先停止之前安装的低版本mysql服务 二.将其他电脑上安装好的mysql拷贝过来 三.拷贝过来之后,进入该文件夹,删除掉data目录,然后打开my.ini,进行修改端口号,端口号改为3307,ba ...
- [BZOJ5248][九省联考2018]一双木棋(连通性DP,对抗搜索)
5248: [2018多省省队联测]一双木棋 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 43 Solved: 34[Submit][Status ...
- 【rope】bzoj1269 [AHOI2006]文本编辑器editor
维护一个字符串,支持以下操作: 主要就是 成段插入.成段删除.成段翻转.前两个操作很好通过rope实现.第三个操作也不难,维护两个rope,一个正向,一个反向,翻转时swap一下就行了. ro ...
- 数据结构--汉诺塔--借助栈实现非递归---Java
/*汉诺塔非递归实现--利用栈 * 1.创建一个栈,栈中每个元素包含的信息:盘子编号,3个塔座的变量 * 2.先进栈,在利用循环判断是否栈空, * 3.非空情况下,出栈,检查是否只有一个盘子--直接移 ...
- 通过scrapy内置的ImagePipeline下载图片到本地、并提取本地保存地址
1.通过scrapy内置的ImagePipeline下载图片到本地 2.获取图片保存本地的地址 1.通过scrapy内置的ImagePipeline下载图片到本地 1)在settings.py中打开 ...
- Hibernate 的HQL,QBC 查询语言
1.HQL:(Hibernate Query Language) 是面向对象的查询语言 1.实体查询 public void testQueryAllDept(){ String hql=" ...