私人定制javascript中数组小知识点(Only For Me)

先上笑话,1.刚看到一个游泳的,想起公司组织去三亚旅游,老板跳海里,各种挣扎,捞上来老板第一句话:我记得我会游泳的啊。
2.媳妇说:老公对不起,我把你新买的自行车撞散架了! 老公:没事宝贝,你若安好,便是晴天! 媳妇说:老公你太有诗意了。 老公:滚犊子,安不好我整死你!

数组的概念

javascript数组是值得有序集合,不过它实属一个javascript对象的特殊形式,这是一个很重点的定性。

创建数组

1.var a=new Array();//等同于[]

2.var a=new Array(10); //指定长度的数组

3.var a=new Array(1,2,“marry you”);

4.var a=[];

数组是动态的
首先数组是可以通过[]来访问数组元素,使用此语法可以读写数组,其中[]内的是小于232非负整数作为属性名时数组会自动维护其length。首先清晰的区分数组的索引和对象的属性名,所有的索引都是属性名,但只有0~232-2之间的整数属性名才是索引。

所有的数组都是对象,可以给数组对象创建任意名字的属性。但是如果使用的属性是数组的索引,数组的特殊行为就会更具需要去更新其length属性值。

这会纠正一个javascript数组“越界”错误的概念,如果试图访问数组索引超出其长度,则不会报错,只会返回undefined值。

稀疏数组和稠密数组

概念是值包含从0开始的不连续索引的数组。也可以这么理解,就是length属性值大于元素的个数。那么这样就会比正常的稠密数组在内存利用率更高,但查找效率基本一致。

此时可以用in来检测

var a1=[,,,];

0 in a1//false

数组元素的添加和删除

最简单的删除方式是var a=[1,2,4]; a.length=0;

同样你也可以用Object.defineProperty()让数组length属性变成只读

var a=[1,2,4];
Object.defineProperty(a,"length",{writable:false});
a.length=0;
console.log(a);
//[1, 2, 4]

添加用push(1,3,4,5,7)//此处可以一次性添加多个元素

delete a[1]是不会修改数组a的length属性,就相当于给删除元素位置赋值undefined值,那么改数组也就变成了稀疏数组了。所以应该用pop()该函数会返回删除的元素

数组遍历

遍历数组用for/in或for。前者遍历是没有一定顺序,所以可以用forEach(ECMAScript 5中的新增的函数)或者for来代替,同时遍历是最好缓存数组长度例如

for(var i=0,alength=a.length;i++){
//循环体
}

for(var i in a){
if(!a.hasOwnProperty(i)){
continue; //跳出循环体
//循环体
}
}

数组的方法

常用方法有join()/reverse()/sort()/concat()/slice()/splice()/push()/pop()/unshift()/shift()/toString()/toLocalString()

如果你对以上都了解,那么我还是想说说其中一个方法

如果用排序少不了sort它是按照字符排序,如果遇到数字或者对一些处理后的字符排序怎么做呢

sort()该方法可以传一个匿名函数作为参数,该匿名函数就可以满足我们的一些特殊要求了,

a=[‘a‘,"bug","Good","ccc"];
a.sort(function(s,t){
var a=s.toLowerCase();
var b=t.toLowerCase();
if(a<b) return -1;
if(a>b) return 1;
return 0;
});
//["a", "bug", "ccc", "Good"]

ECMAScript 5中新增数组方法

forEach()//遍历数组,按顺序输出,如果要break;就要用try catch来辅助了。

map()// a=[1,2,3]; a.map(function(x){return x*x;}) //[1,4,9];

filter()//a=[5,3,4,5,6]; a.filter(function(x,i){return i%2==0});//[4,6]

every()/some()/reduce()/reduceRigth()/indexOf()/lastIndexOf()等如果不知道就谷哥吧。

这里要说一点的是字符串的行为类似于数组的事实使得通用的数组方法可以应用到字符串上。

例如:

Array.prototype.filter.call("javascript",function(x){return x.match(/[^aeiou]/);}).join("");

//"jvscrpt"

结束语

简单总结就是数组表现出来的很多东西的本质其实是因为它是对象而决定的。数组中大多数的方法都是通用的,这就意味着它不仅对数组对象有效,而且对”类数组对象同样有效“如字符串行为就与字符数组类似。如果你觉得不错,那就推荐一下。

私人定制javascript中数组小知识点(Only For Me),布布扣,bubuko.com

时间: 2024-10-13 03:42:36

私人定制javascript中数组小知识点(Only For Me)的相关文章

私人定制javascript中函数小知识点

函数的定义 首先在javascript中,函数就是对象,程序可以随意操控它们.比如,可以给它们设置属性,甚至调用它们的方法.函数使用function关键字来定义.它既可以用在函数定义表达式,也可以用在函数声明语句中.函数声明function后面必须要更上函数名称也就是所谓的函数名称标识符.如果是函数表达式函数名称标识符可有可无.这段重点是函数是对象,所以函数表现出来的种种行为你想想成对象,那么很多疑惑可能就恍如昨日初见. 函数调用 4种方式来调用javascript函数: 1.作为函数 就是函数

私人定制javascript中对象小知识点(Only For Me)

废话不多讲,先上笑话,然后再,.看懂这个的说明你的节操已经不再了. 晚饭后去理发店理发...割了吧...老板问我怎么剪,我悠悠的来一句往帅了剪...高潮往往令人想不到....旁边一在焗油烫头发的大妈说到 别这样为难老板,人家赚点钱不容易...首先如果你是高手那么请出门右转,如果你是菜鸟那么恭喜你,go on吧 全局对象在javascript程序中任何位置,都可以拈来就用的这种东西,是全局对象的属性.那么属性所在的对象也就是全局对象了.当javascript解释器启动时(或者任何Web浏览器加载新

JavaScript中数组Array.sort()排序方法详解

JavaScript中数组的sort()方法主要用于对数组的元素进行排序.其中,sort()方法有一个可选参数.但是,此参数必须是函数. 数组在调用sort()方法时,如果没有传参将按字母顺序(字符编码顺序)对数组中的元素进行排序,如果想按照其他标准进行排序,就需要进行传一个参数且为函数,该函数要比较两个值,并且会返回一个用于说明这两个值的相对顺序的数字. 1.对数字数组进行由小到大的顺序进行排序. 代码: var arr = [22,12,3,43,56,47,4]; arr.sort();

记录神经网络中一些小知识点

记录神经网络中一些小知识点 1 Caffe中的blob维度 Caffe中的blob具有4个维度,分别是num,channel,width和height: 其中我们在定义各个网络层时,常用到的一个参数numout,就是指定的channel: 比如说,维度为1*3*5*5的数据输入网络(即每次输入一张5*5大小的3通道图),经过一个stride为2,pad为1,kernel为2,numout为2的卷积层后,维度就变成了1*2*3*3: 假如输入有n个通道,计算时,caffe就会对应产生n个filte

Javascript的一些小知识点

小弟五一回家去了,本想好好的享受下五一假期,谁知悲剧的人生不需要解释.好不容易过五关斩十将,跨千山趟万水,回到家里.吃着老妈做的好菜,第二天就莫名其妙的急性肠炎,这肚子闹腾的.NND,气死哥了,早知道就不回家了.好了,废话不多说,进入主题. ================ 关于clientHeight.offsetHeight.scrollHeight window.screen.availWidth 返回当前屏幕宽度(空白空间) window.screen.availHeight 返回当前屏

javascript中数组常用方法总结

原文:javascript中数组常用方法总结 在javascript的基础编程中,数组是我们最常遇到的,那么数组的一些常用方法也是我们必须要掌握的,下面我们总结一下数组中常用的方法. toString()和valueOf()方法 toString()方法,就是将数组拼接成字符串返回,默认情况下以逗号分隔.valueOf返回数组本身. 1 var a=["a3","bs","c1","d邓"]; 2 var c=a.toStri

JavaScript中数组高级编程实践

今天我们来全面介绍 JavaScript 中 数组的高级使用,与EcmaScript5 Array API 实战. 利用这些新的API 和 技巧,将提高你的开发效率 和 代码的水平. 理解这些原生的API是 非常有必要的,假以时日,我们也可以写出 underscore ...这样的工具库来. Come on Baby! 先看一下 Array.prototype 的全家福. 在JavaScript 中,数组就是有顺序的存储一系列值,长度动态扩容. ,先看我们的EcmaScript 规范中的  对

浅谈JavaScript中数组操作常用方法

JavaScript中数组操作常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2)获取对象的类型,比较是否为object类型(此方法只能检测是否为Object,不推荐) if(typeof(value)=="Object") { //对数组执行某些操作 } 3)检测对象是否为数组,使用Array.isArray()方法(只支持ie9+,firefox 4+,safar

javascript中数组比较大小方法

javascript中数组取最大值和最小值 1.排序法 我们给数组进行排序,可以按照从小到大的顺序来排,排序之后的数组中第一个和最后一个就是我们想要获取的最小值和最大值.排序我们会用到数组的 sort 方法. var arr = [12,56,25,5,82,51,22]; arr.sort(function (a, b) { return a-b; }); // [5,12,22,25,51,56] var min = arr[0]; // 5 var max = arr[arr.length