`
pany
  • 浏览: 90353 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

js 操作数组 常用函数

 
阅读更多

shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined
var a = [1,2,3,4,5];
var b = a.shift(); //a:[2,3,4,5] b:1

unshift:将参数添加到原数组开头,并返回数组的长度
var a = [1,2,3,4,5];
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7
注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。

pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined
var a = [1,2,3,4,5];
var b = a.pop(); //a:[1,2,3,4] b:5

push:将参数添加到原数组末尾,并返回数组的长度
var a = [1,2,3,4,5];
var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7

concat:返回一个新数组,是将参数添加到原数组中构成的
var a = [1,2,3,4,5];
var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]

splice(start,deleteCount,val1,val2,…):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,…
var a = [1,2,3,4,5];
var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4]
var b = a.splice(0,1); //同shift
a.splice(0,0,-2,-1); var b = a.length; //同unshift
var b = a.splice(a.length-1,1); //同pop
a.splice(a.length,0,6,7); var b = a.length; //同push

reverse:将数组反序
var a = [1,2,3,4,5];
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]

sort(orderfunction):按指定的参数对数组进行排序
var a = [1,2,3,4,5];
var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5]

slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组
var a = [1,2,3,4,5];
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]

join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符
var a = [1,2,3,4,5];
var b = a.join(“|”); //a:[1,2,3,4,5] b:”1|2|3|4|5″

数组是JavaScript提供的一个内部对象,它是一个标准的集合,我们可以添加(push)、删除(shift)里面元素,我们还可以通过for循环遍历里面的元素,那么除了数组我们在JavaScript里还可以有别的集合吗?

  由于JavaScript的语言特性,我们可以向通用对象动态添加和删除属性。所以Object也可以看成是JS的一种特殊的集合。下面比较一下Array和Object的特性:

  Array:

新建:var ary = new Array(); 或 var ary = [];
增加:ary.push(value);
删除:delete ary[n];
遍历:for ( var i=0 ; i < ary.length ; ++i ) ary[i];

  Object:

新建:var obj = new Object(); 或 var obj = {};
增加:obj[key] = value; (key为string)
删除:delete obj[key];
遍历:for ( var key in obj ) obj[key];

  从上面的比较可以看出Object完全可以作为一个集合来使用,在使用Popup窗口创建无限级Web页菜单(3)中我介绍过Eric实现的那个__MenuCache__,它也就是一个模拟的集合对象。

  如果我们要在Array中检索出一个指定的值,我们需要遍历整个数组:

  
代码:
var keyword = ;
  for ( var i=0 ; i < ary.length ; ++i )
  {
  if ( ary[i] == keyword )
  {
  // todo
  }
  }

  而我们在Object中检索一个指定的key的条目,只需要是要使用:

  
代码:
var key = '';
  var value = obj[key];
  // todo

 Object的这个特性可以用来高效的检索Unique的字符串集合,遍历Array的时间复杂度是O(n),而遍历Object的时间复杂度是 O(1)。虽然对于10000次集合的for检索代价也就几十ms,可是如果是1000*1000次检索或更多,使用Object的优势一下就体现出来 了。在此之前我做了一个mapping,把100个Unique的字符mapping到1000个字符串数组上,耗时25-30s!后来把for遍历改成 了Object模拟的集合的成员引用,同样的数据量mapping,耗时仅1.7-2s!!!

  对于集合的遍历效率(从高到低):var value = obj[key]; > for ( ; ; ) > for ( in )。效率最差的就是for( in )了,如果集合过大,尽量不要使用for ( in )遍历。

分享到:
评论

相关推荐

    javascript的数组和常用函数详解_.docx

    #### 四、数组常用函数 **concat方法:** `concat`方法用于将两个或多个数组合并成一个新的数组,不会改变原有的数组: ```javascript var arr1 = [1, 2, 3]; var arr2 = [4, 5, 6]; var combined = arr1.concat...

    javascript的数组和常用函数详解

    Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维数组的功能。 1.1 定义数组 声明有10个元素的数组: 代码如下:var a = new Array(10);此时为a...

    JavaScript数组操作函数汇总

    以下是关于标题和描述中提到的一些常用数组操作函数的详细解释: 1. **push()**: - `push()` 函数允许你在数组的末尾添加一个或多个元素,并返回更新后数组的长度。例如: ```javascript var arr = [1, 2, 3]; ...

    javascript中数组的多种定义方法和常用函数简介

    3. **JavaScript数组的常用函数**: - **toString()**:将数组转换为字符串,元素之间默认由逗号分隔。 - **toLocaleString()**:类似于toString(),但根据本地环境进行转换。 - **join()**:允许指定分隔符,将...

    javascript常用函数 javascript 常用库

    一、JavaScript常用函数 1. 数组操作函数 - `push()`: 向数组末尾添加一个或多个元素,并返回新长度。 - `pop()`: 删除并返回数组最后一个元素。 - `shift()`: 删除并返回数组第一个元素。 - `unshift()`: 在...

    js中数组常用方法总结(推荐).docx

    ### JavaScript 数组常用方法详解 #### 一、引言 JavaScript 是一种广泛应用于网页开发的脚本语言,其中数组作为一种基本的数据结构,在处理数据时扮演着极其重要的角色。本文将详细介绍 JavaScript 中常用的数组...

    最实用的JS数组函数整理

    JS数组函数是JavaScript中进行数组操作的核心工具,它们能够对数组进行各种处理,包括检测、添加、删除、排序等。下面详细整理了一些最常用的JS数组函数,并解释了它们的使用方法和规则。 首先,我们来了解检测一个...

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

    5. **数组常用函数** - `concat()`:连接两个或更多数组并返回新的数组。 - `push()`:向数组末尾添加一个或多个元素,并返回新的长度。 - `pop()`:删除并返回数组的最后一个元素。 - `shift()`:删除并返回...

    MATLAB 字符数组和字符串数组以及文本操作常用函数.md

    ### MATLAB 字符数组和字符串数组及其文本操作常用函数详解 #### 一、引言 MATLAB 是一种广泛应用于科学计算、算法开发和数据分析的强大工具。其中,文本数据处理是其重要应用之一。本文将详细介绍 MATLAB 中字符...

    javascript常用函数集合

    这个"javascript常用函数集合"涵盖了JavaScript编程中常见的函数和概念,是学习和提升JavaScript技能的重要资源。以下是对这些常见函数和基础知识的详细解释: 1. **变量声明**:在JavaScript中,我们可以使用`var`...

    js中数组常用方法总结(推荐)

    在JavaScript中,数组是一种常见的数据结构,它提供了一系列的方法来处理数组中的元素。...以上就是JavaScript中数组的一些常用方法的介绍和示例代码。掌握了这些方法,就能在开发过程中更加高效地处理数组相关的问题。

    js数组方法扩展实现数组统计函数

    在介绍的这篇文章中,我们将深入探讨JavaScript(简称JS)中数组方法的扩展以及如何实现数组统计函数的相关知识点。文章首先提供了数组统计函数的概述,然后通过具体的代码示例展示了如何通过扩展jQuery的$.extend...

    JavaScript学习笔记_js常用函数封装_js包.zip

    本压缩包“JavaScript学习笔记_js常用函数封装_js包.zip”包含了对JavaScript基础及进阶技巧的学习资料,特别关注了函数封装和模块化开发实践。 首先,`tool.js`可能是一个实用工具函数集合,封装了一些常见的...

    js操作数组函数实例小结

    在JavaScript中,数组是一种常用的数据结构,用于存储和操作一系列有序的数据。本文将重点讨论三种基本的数组操作:删除指定元素、去除重复元素以及删除指定下标的元素。 1. 删除数组中指定的元素 在JavaScript中...

    js常用函数__Updated_10_seconds_ago_js常用函数,包含数据类型判断,数组去_js-.zip

    js常用函数__Updated_10_seconds_ago_js常用函数,包含数据类型判断,数组去_js-

    JavaScript中数组常见操作技巧

    ### JavaScript中数组常见操作技巧 #### 数组的创建与初始化 在JavaScript中,创建数组通常使用数组字面量 `[]`。这与使用 `new Array()` 不同,因为后者在某些情况下用于创建指定长度的数组,而数组字面量则更加...

Global site tag (gtag.js) - Google Analytics