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

时间: 2024-10-28 21:05:38

js中对数组的操作-------Day49的相关文章

JS中字符串的相关操作

(转自:http://www.cnblogs.com/zhaoxinxin/articles/1402733.html) 一.字符串的创建 创建一个字符串有几种方法. 最简单的是用引号将一组字符包含起来,可以将其赋值给一个字符串变量. var myStr = "Hello, String!"; 可以用双引号或单引号将字符串包含,但要注意,作为界定字符串的一对引号必须是相同的,不能混用. 像var myString = "Fluffy is a pretty cat.'; 这样

JavaScript学习-js中的数组/Boolean类/字符串String类

JavaScript学习 [js中的数组] 1.数组的概念:是在内存中连续储存对个有序元素的结构 元素的顺序称为下标,通过下标查找对象元素. 2.数组的声明: ① 字面量声明:var arr1 = []; js中,同一数组,可以储存多种不同的数据类型: 例如: var arr1 = [1,"2",true,{"name":"hahhah"},[1,2]] ② new关键字声明: var arr2 = new Arry(参数) >>&g

字符串方法,js中的数组方法,ES5新增的数组方法,以及jQuery中的数组方法

说明:本片主要对比介绍与数组操作相关的方法 (一)字符串方法(String对象方法) indexOf() //检索字符串 lastIndexOf() //从后向前搜索字符串 match() //找到一个或多个正则表达式的匹配 replace() //替换与正则表达式匹配的子串 search() //检索与正则表达式相匹配的值 slice() //提取字符串的片断,并在新的字符串中返回被提取的部分 split() //把字符串分割为字符串数组 substr() //从起始索引号提取字符串中指定数目

js中的数组对象排序

一.普通数组排序 js中用方法sort()为数组排序.sort()方法有一个可选参数,是用来确定元素顺序的函数.如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进行排序.如: var arr = ["a", "b", "A", "B"]; arr.sort(); console.log(arr);//["A", "B", "a", "b"

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

原文地址:http://www.jb51.net/article/56986.htm 本文实例讲述了js中confirm实现执行操作前弹出确认框的方法.分享给大家供大家参考.具体实现方法如下: 现在在删除或其它操作前弹出确定提示,我们有很多方法,最基本的就是利用js自带的函数confirm来操作了 最简单的用法如下: 鼠标事件使用confirm 复制代码 代码如下: <a href="#" onclick= "if(confirm( '是否确定! ')==false)r

JS中对数组元素进行增删改移

在js中对数组元素进行增删改移,简单总结了一下方法: 方法 说明 实例 push( ); 在原来数组中的元素最后面添加元素 arr.push("再见58"); unshift( ); 在原来数组中的元素最前面添加元素 arr.shift("你好58"): pop(); 移除数组中最后面的一个元素 arr.pop(); shift(); 移除数组中最前面的一个元素 arr.shift(); concat(); 拼接两个数组中的元素 (哪个数组在前面,拼接后它的元素就在

js基础之js中的HTML属性操作与注意事项

一.js中的HTML属性操作HTML属性操作:读和写: 属性读操作:作用:获取.找到: 语法:元素.属性名 属性写操作:作用:替换.修改: 语法:元素.属性名 = 新的值--->就替换了. innerHTML:读取元素内的所有HTML内容: 语法:元素.innerHTML://读取HTML内容 语法:元素.innerHTML = 新值://修改HTML内 容 /*属性读写操作注意事项*/1.JS中不允许出现“-”例:oDiv.style.fontSize将font-size 中的“-”去掉,si

JS中申明数组的三种方法

JS中的数组对象可以存放的元素非常丰富,包括number.String等基本的数据类型以及object对象还有数组类型,他们都可以构成数组元素的一部分. 方法1: var a = new array(); a[0] = "1";//String类型 a[1] = 2;//number类型 a[2] = { x:1, y:3};//object对象作为数组的元素 //方法2: var  a  =  new array("1" , 2 , {x:1,y:3} ); //

JS中的加密解密操作,以及对应的C#中的加密解密

JS: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>RSA Login Test</title> <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> <scri