js中对数组的操作-------Day49
今天碰到了一个问题:easyui的使用中,datagrid表格的高度怎样改变(设定成一个固定的高度),看了半天文档,也从网上查了些。还楞是没弄出来,有点小郁闷。这easyui在某些情况情况下确实好用了,可要任意调整实在是有些麻烦啊。
做不出就先放放,回家了就换个心情。
昨天在回放拖拽轨迹的实现中。对数组的应用成了关键的一步,于是特意查看了一些javascript对数组的操作。这里来记录下:
“增删改查”这四个字相信都不陌生。我们绝大多数的工作都是在进行这些操作,而这些操作却有一个大前提:存在。存在一个让你增删改查的对象,假设不存在,那我们就先来创建一个:
1、创建
var a=new Array();
var b=new Array(3);
var c=new Array(['qwe',"12313",123]);
var d=["asd","qwe","zxc"];
通常我们创建一个数组的方式为上面四种。然后
*alert(a+"----------"+b+"---"+c+"--------"+d);
这样我们能够清晰的看到。第一个是空的。而第二个有两个逗号“,”则说明有3个空,后面的则是正常输出,可是
*alert(typeof(a)+"----------"+typeof(b)+"---"+typeof(c)+"--------"+typeof(d))来看,我们都成功的创建了一个对象。
创建过程中我们存在四种方法。到底哪一种更好呢。我们没法评判,不同情况下各有千秋吧。但有一种情况我们须要特别注意
var test01=new Array(3);
var test02=new Array([3]);
事实上这颇有些迷惑性。只是一个中括号,意义却不同样。
前一个为创建一个length长度为3的数组,后一个则为创建一个长度为1,且第一个值为3的数组,这样放在一起的话可能我们都明确。但是就给你不论什么当中一个,假设不细致。极有可能出错呢。
而还有一方面new Array([5,2])和[5,2]这两个数组同样么,且在查看中解答。
2、查看
既然创建成功了,我们就能够查看这个对象的属性或者值。或者其他。
首先我们知道查看一个数组最好的方式是将它遍历出来,通常的写法应该为:
for(var i=0;i<d.length,i++){
alert(d[i]);
}
这里就不一一展示了,仅仅记录几个颇为迷惑的地方:
*alert(a[0]+"-----"+b[0]+"---"+c[0]+"-----"+d[0]+a[2]+"-----"+b[2]+"---"+c[2]+"-----"+d[2]);这样我们来看输出结果
这里我们就攻克了上面创建中的问题,new Array(【5,2】)和【5。2】还是不一样,前者表示说创建了一个数组,数组含有一个元素,而后者则说明创建了两个元素,分别为“5”和“2”。其有用前面的来表示后面的话,应该写为:var e=new Array(['5'],[2],);
于是我写下了这样一个输出
var e=new Array(['qwe'],["12312"],[123]);
var f=[["1","2"],["2","3"]]
*alert(a[0]+"-----"+b[0]+"---"+c[0]+"-----"+d[0]+a[2]+"-----"+b[2]+"---"+c[2]+"-----"+d[2]+"---"+e[0]+"--"+f[0]);结合上面的来看的话,你猜结果会是什么?
这样原理就更清楚了吧。但是有一点我却还是有些疑惑:
var d=["asd","qwe",123];
var e=new Array('qwe',"12312",123);
***假设我们输出alert(e[2]+"---"+typeof[e[2]]+“--”+d[2]+"---"+typeof(d[2]));结果为什么都是123,却一个是object。一个是number呢?还是有些小疑惑
而假设var t=e【2】,再输出typeof(t)。也是number了就,这是为什么呢?
3、删除
假设上面原理上多点。那么这里就多记些方法吧
.pop()这个昨天就应用了,删除数组的最后一个元素值。并返回该元素值。public object pop(){这里是删除最后一个的实现;return object}
shift()有了删除最后一个,就比較关注第一个。有头有尾嘛,这种方法就是用来删除第一个元素,并返回第该元素值的操作;
.splice(here,num,newItem,newItem2,...)这种方法存在參数。整体的意义是删除第几位到第几位被。并以以数组形式将删除的值返回,而參数第一位是在数组的第几位開始数,開始删除,这里是从0開始数的,第二个參数则是数几位,假设为0,则不进行删除。假设为1。则从開始数的那位開始仅仅查1个数值,依次论推,而假设后面再跟參数的话,那就应该到了加入的范畴里了,这里先一并解释下。就是进行完之前的操作之后。再在刚才的操作位插入后面的參数,即新的数值。
4、添加
前面居然介绍到了splice,这里就该说添加了,splice在一定程度上就是添加,假设第2个參数为0。同一时候还存在第3个或者很多其它的參数时,它就是添加,另外假设第2个參数不为0,同一时候还有很多其它參数的话,那就是改动了,所以改动就不再单独说了。
而之前用过的.push()则是在数组末尾加入
相对的.unshift()则是在数组的最前端进行加入。跟删除也就相应起来了吧
5、排序
不得不说,这曾是个慘痛的教训。在那个冒泡排序还不熟悉的时候。以前用过这种方法进行过排序,可是面试的时候,愣是两个一个都没有想起来,反序啊还是自己你憋了半天写的丑陋不堪的。多么痛的领悟啊当时是
.sort()多么痛的领悟啊
.reverse()反序,最前面的放最后面了,最后面的到最前面了。多么痛的领悟啊
6、数组的截取、合并和拷贝
.slice(start,[end]),这个的应用让我想起了subString(start,[end]),这里是生成的一个新的,一个新的,是new了一个哦
.concat()拼接,都是返回的新的哦。拼接之后的,new个的新的哦。新的哦
这里临时还记录这么多吧。也没查到太多实用的操作。这里附上个小知识:
typeof()的返回值有六个:number /string /boolean /object /function /undefined(还记得它和null的差别么)
天之道。损有余而补不足.....你想起了谁,大侠郭靖啊。仅仅要有颗向上的心,总能看到太阳升起的那刻....
js中对数组的操作-------Day49的更多相关文章
- JS中关于数组的操作
1.如何创建数组: var arr = []; //效率更高 var arr1 = new Array(); var arr2 = new Array(5); //数组的长度为5,当参数为一个时,将会 ...
- js中对于数组的操作
let myArray=[11,22,33]; console.log('原数组:',myArray); myArray.push(44,55); console.log('用push在数组后面插入元 ...
- JavaScript jQuery 中定义数组与操作及jquery数组操作
首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...
- JS中Array数组的三大属性用法
原文:JS中Array数组的三大属性用法 Array数组主要有3大属性,它们分别是length属性.prototype属性和constructor属性. JS操作Array数组的方法及属性 本文总结了 ...
- JavaScript jQuery 中定义数组与操作及jquery数组操作 http://www.jb51.net/article/76601.htm
首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...
- java:JavaScript3(innerHTML,post和get,单选框,多选框,下拉列表值得获取,JS中的数组,JS中的正则)
1.innerHTML用户登录验证: <!DOCTYPE> <html> <head> <meta charset="UTF-8"> ...
- [转]js中confirm实现执行操作前弹出确认框的方法
原文地址:http://www.jb51.net/article/56986.htm 本文实例讲述了js中confirm实现执行操作前弹出确认框的方法.分享给大家供大家参考.具体实现方法如下: 现在在 ...
- js中的数组
上网查了一下,js中的数组包含的内容还真不少.先给出两个学习的链接: w3school链接:http://www.w3school.com.cn/js/js_obj_array.asp 博客园链接:h ...
- JavaScript中对数组的操作
原文:JavaScript中对数组的操作 一:数组的使用 1.定义:JavaScript中对数组的定义有两种形式.如: .var arr = [12,3,5,8]; .var arr = new Ar ...
随机推荐
- 前端之HTTP协议
HTTP协议简介 作为学习前端开发的开始,我们必须搞明白以下几件事 1.什么是互联网 互联网=物理连接介质+互联网协议 2.互联网建立的目的? 数据传输打破地域限制,否则的话,我想获 ...
- 去除windows编辑文本中的回车符
情景描述: 最近,huskiesir的朋友遇到了一个很奇葩的问题.那就是他在windows上搭建了一个http服务,把A脚本放在了上面并用linux去下载和执行,但是在执行的时候出现了问题,在linu ...
- HDU 4928 Series 2
有了题解以后这题就成了一个模拟题.不过写了好久才把它写对…… Sad #include <iostream> #include <cstdio> #include <cs ...
- Unity 给FindGameObjectsWithTag排序
GameObject[] patrol = GameObject.FindGameObjectsWithTag ("Player").OrderBy (g => g.tran ...
- Spring学习总结(12)——Druid连接池及监控在spring配置
Druid连接池及监控在spring配置如下: <bean id="dataSource" class="com.alibaba.druid.pool.DruidD ...
- ArcGIS api for javascript——地理处理任务-计算一个可视域
描述 本例展示了使用一个地理处理计算一个可视域(viewshed) 单击地图上的任意点查看该点5英里内能看见的所有区域.这个模型需要几秒钟来运行并反馈结果. 可视域计算是通过ArcGIS Server ...
- URAL 1513. Lemon Tale(简单的递推)
写几组数据就会发现规律了啊. .但是我是竖着看的.. .还找了半天啊... 只是要用高精度来写,水题啊.就当熟悉一下java了啊. num[i] = 2*num[i-1]-num[i-2-k]. 15 ...
- Linux系统的LOG日志文件及入侵后日志的清除
UNIX网管员主要是靠系统的LOG,来获得入侵的痕迹.当然也有第三方工具记录入侵系统的 痕迹,UNIX系统存放LOG文件,普通位置如下: /usr/adm - 早期版本的UNIX/var/adm - ...
- php 扩展
如何利用PHP扩展函数,扩展出自己的函数等 php扩展函数有哪些zend_parse_parameters() spprintf() RETURN_STRINGL()
- 二分法查找 js 算法
二分法查找算法:采用二分法查找时,数据需是排好序的.主要思想是:(设查找的数组区间为array[s, e])(1)确定该区间的中间位置m(2)将查找的值T与array[m]比较,若相等,查找成功返回此 ...