今天碰到了一个问题: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的更多相关文章

  1. JS中关于数组的操作

    1.如何创建数组: var arr = []; //效率更高 var arr1 = new Array(); var arr2 = new Array(5); //数组的长度为5,当参数为一个时,将会 ...

  2. js中对于数组的操作

    let myArray=[11,22,33]; console.log('原数组:',myArray); myArray.push(44,55); console.log('用push在数组后面插入元 ...

  3. JavaScript jQuery 中定义数组与操作及jquery数组操作

    首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...

  4. JS中Array数组的三大属性用法

    原文:JS中Array数组的三大属性用法 Array数组主要有3大属性,它们分别是length属性.prototype属性和constructor属性. JS操作Array数组的方法及属性 本文总结了 ...

  5. JavaScript jQuery 中定义数组与操作及jquery数组操作 http://www.jb51.net/article/76601.htm

    首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...

  6. java:JavaScript3(innerHTML,post和get,单选框,多选框,下拉列表值得获取,JS中的数组,JS中的正则)

    1.innerHTML用户登录验证: <!DOCTYPE> <html> <head> <meta charset="UTF-8"> ...

  7. [转]js中confirm实现执行操作前弹出确认框的方法

    原文地址:http://www.jb51.net/article/56986.htm 本文实例讲述了js中confirm实现执行操作前弹出确认框的方法.分享给大家供大家参考.具体实现方法如下: 现在在 ...

  8. js中的数组

    上网查了一下,js中的数组包含的内容还真不少.先给出两个学习的链接: w3school链接:http://www.w3school.com.cn/js/js_obj_array.asp 博客园链接:h ...

  9. JavaScript中对数组的操作

    原文:JavaScript中对数组的操作 一:数组的使用 1.定义:JavaScript中对数组的定义有两种形式.如: .var arr = [12,3,5,8]; .var arr = new Ar ...

随机推荐

  1. APUE 学习笔记 —— 文件I/O

    本章节主要讲了 Linux 系统下的关于文件I/O操作的几个函数:open.read.write.lseek.close 的使用和需要注意的一些细节.接着,又介绍了多进程见如何共享文件.下面开始知识点 ...

  2. JDK工具(零)--简要介绍JDK1.6自带的42个工具

    Java的开发人员肯定都知道JDK的bin目录中有"java.exe"和"javac.exe"这两个命令行工具, 但并非所有的Java程序员都了解过JDK的bi ...

  3. CSU 1378 Shipura 简单模拟

    上周末中南的题,当时就知道是个简单模拟题,可是一个多小时就是没写出来,代码能力啊 >.< 题意: 某人发明了一种程序语言,只支持一种运算">>",和一种函数 ...

  4. OPENCV(1)

    VS 程序的默认路径是源码所在路径(所以图片应该放在此处),而不是Debug路径   OpenCV 模块结构: core--定义了基本数据结构,包括最重要的Mat和一些其他的模块 imgproc--该 ...

  5. K-序列(埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛)

    题目描述 给一个数组 a,长度为 n,若某个子序列中的和为 K 的倍数,那么这个序列被称为“K 序列”.现在要你 对数组 a 求出最长的子序列的长度,满足这个序列是 K 序列.  输入描述: 第一行为 ...

  6. scrollWidth到底是什么???

    贴上MDN对scrollwidth的定义: The Element.scrollWidth read-only property is a measurement of the width of an ...

  7. 【转】一篇关于32位Linux内核使用大内存的文章——Hugemem Kernel Explained  &nb

    红旗DC系列Linux操作系统(x86平台)中带有四类核心: UP (支持单内核) SMP (支持多内核) hugemem Icc* (用intel C编译器编译的核心) 其中hugemem核心往往引 ...

  8. ios中静态库的创建和使用、制作通用静态库(Cocoa Touch Static Library)

    创建静态库可能出于以下几个理由: 1.你想将工具类代码或者第三方插件快捷的分享给其他人而无需拷贝大量文件.2.你想让一些通用代码处于自己的掌控之下,以便于修复和升级.3.你想将库共享给其他人,但不想让 ...

  9. STL heap部分源代码分析

    本文假设你已对堆排序的算法有主要的了解. 要分析stl中heap的源代码的独到之处.最好的办法就是拿普通的代码进行比較.话不多说,先看一段普通的堆排序的代码: //调整大顶堆.使得结构合理 void ...

  10. 中科燕园GIS外包--移动GIS

    移动GIS恰逢其时 得益于移动智能终端的普及和移动互联网的发展,伴随着GIS技术的发展和应用的深入.越来越多的企业和普通消费者開始体会到移动GIS的巨大潜力和价值. 移动GIS轻便灵活,受众面广.随时 ...