文档章节

4_引用类型(【一】数组)

1217528969
 1217528969
发布于 2015/02/28 16:04
字数 710
阅读 13
收藏 0

在ECMAScript中数组是非常常用的引用类型了。

//定义方式
var arr = new Array();
var arr = [1, 2, 3, 4, true, "abc", new Date()];
console.info(arr.length);
arr.length = 5;
console.info(arr);
console.info(arr.toString());

ECMAScript所定义的数组和其他语言中的数组有着很大的区别。那么首先要说的就是数组也是一种对象。
特点:
    "数组"即一组数据的集合。
    js数组更加类似java的容器。长度可变,元素类型也可以不同!
    数组长度随时可变!随时可以修改!(length属性)
常用方法:
    push、pop

/**
 * push 和 pop方法
 * 修改数组自身
 */
 
var arr = [new Date(), false];
var result = arr.push(1, 2, true); //push方法向数组尾部追加元素,返回追加元素后的数组长度
console.info(result);
console.info(arr);
console.info(arr.length);
var obj = arr.pop(); //pop方法从数组尾部移除一个元素,返回当前移除的元素,数组长度-1
console.info(obj);
console.info(arr);
console.info(arr.length);

    shift、unshift

/**
 * shift 和 unshift方法
 * 修改数组自身
 */
var arr = [1, 2, 3, true, new Date()];
var r1 = arr.shift(); //shift方法从数组头部移除一个元素,返回当前移除的元素,数组长度-1
console.info(r1);
console.info(arr);
console.info(arr.length);
  
var r2 = arr.unshift(10, false); //unshift方法从数组头部追加元素,返回追加元素后的数组长度
console.info(r2);
console.info(arr);
console.info(arr.length);

    splice、slice

/**
 * splice、slice方法
 * splice方法操作数组本身,可在指定位置完成添加、修改、删除等操作
 * slice方法不操作数组本身,返回新的数组
 */
  
//splice()参数
//  第一个参数:起始位置
//  第二个参数:截取长度
//  第三个参数以后:表示追加的新元素
//  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
var arr = [1, 2, 3, 4, 5];
arr.splice(1, 2, 3, 4, 5); 
console.info(arr); //1, 3, 4, 5, 4, 5 
   
//slice() //返回截取的内容 截取的范围左闭右开
//  第一个参数:起始位置,包含
//  第二个参数:结束位置,不包含
var arr = [1, 2, 3, 4, 5];
var result = arr.slice(2, 4);
console.info(result);
console.info(arr);

    concat、join

//操作数组的方法: concat join
//concat 把两个数组合并为一个新数组,方法不操作数组本身,返回一个新的数组
var arr1 = [1, 2, 3];
var arr2 = [true, 4, 5];
var result = arr1.concat(arr2);
console.info(result);
console.info(arr1);
console.info(arr2); 
//join 把数组元素按指定分割符连接成一个字符串,方法不操作数组本身
var result = arr1.join("-");
console.info(arr1);
console.info(result);

    sort、reverse等

/**
 * sort排序
 * reverse倒序
 */
var arr1 = [5, 2, 1, 4, 3];
var arr2 = [10, 2, 4, 1, 7];
arr1.sort(); //sort()方法默认按照字符串方式比较
console.info(arr1); // [1, 2, 3, 4, 5]
arr1.reverse(); 
console.info(arr1); //[5, 4, 3, 2, 1]
arr2.sort();
console.info(arr2); //[1, 10, 2, 4, 7]
function compare(value1, value2){
    if(value1 < value2){
        return -1;
    } else if(value1 > value2){
        return 1;
    } else {
        return 0;
    }
}
arr2.sort(compare); //指定排序function
console.info(arr2); //[1, 2, 4, 7, 10]


© 著作权归作者所有

共有 人打赏支持
1217528969
粉丝 1
博文 27
码字总数 14810
作品 0
济南
16--swift之内存管理进阶

1.深拷贝与浅拷贝 值类型拷贝是一对一的拷贝,每个引用都有一个不同的对象,而引用型拷贝是多对一的拷贝,多个引用指向同一个对象,所以引用类型需要进行内存管理,而值类型不需要 //引用类型...

飞翔的小二哈
2016/03/13
25
0
引用类型对象拷贝

1. JavaScript引用类型有哪些?非引用类型有哪些? 引用类型: 对象、数组、函数、正则表达式,指保存在堆内存中的对象,变量中保存的实际上是一个指针,这个指针指向内存中的另一个位置,由...

熊蛋子17
2017/12/06
0
0
Java源代码阅读体会(1)-ArrayList

今天,觉得无所事事就抱着试一试的心态,看了一下Java的源代码,看的是比较简单的ArrayList部分。 同时,也让我清楚两个个东东区别add(i, E)和set(i, E)。 大家可能会笑,以前我以为这个两个...

Robinson_lu
2012/11/09
0
0
慎用JS中的slice()、concat()和assign()方法来复制数组

一、原数组里的数据不包含引用类型 1、使用 slice() 方法 拷贝数组: 修改经过 slice() 拷贝过的新数组: 结论:使用 slice() 方法拷贝数组,然后修改新数组,不会影响到旧数组的值。 2、使用...

隔壁张小二
07/31
0
0
一名前端工程师的自学之路!Js篇(11-22更新)

看到标题能进来的小伙伴,我也就不废话,先推荐一本必买的书《JavaScript高级程序与设计》。今天接着上一篇文章还是分享最基础入门的一些Js的知识。 1、构造函数 和对象 构造函数:可以通过n...

自律更自由
2017/11/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux 系统的运行级别

运行级别 运行级别 | 含义 0 关机 1 单用户模式,可以想象为windows 的安全模式,主要用于修复系统 2 不完全的命令模式,不含NFS服务 3 完全的命令行模式,就是标准的字符界面 4 系统保留 5 ...

Linux学习笔记
今天
2
0
学习设计模式——命令模式

任何模式的出现,都是为了解决一些特定的场景的耦合问题,以达到对修改封闭,对扩展开放的效果。命令模式也不例外: 命令模式是为了解决命令的请求者和命令的实现者之间的耦合关系。 解决了这...

江左煤郎
今天
3
0
字典树收集(非线程安全,后续做线程安全改进)

将500W个单词放进一个数据结构进行存储,然后进行快速比对,判断一个单词是不是这个500W单词之中的;来了一个单词前缀,给出500w个单词中有多少个单词是该前缀. 1、这个需求首先需要设计好数据结...

算法之名
昨天
14
0
GRASP设计模式

此文参考了这篇博客,建议读者阅读原文。 面向对象(Object-Oriented,OO)是当下软件开发的主流方法。在OO分析与设计中,我们首先从问题领域中抽象出领域模型,在领域模型中以适当的粒度归纳...

克虏伯
昨天
1
0
Coding and Paper Letter(四十)

资源整理。 1 Coding: 1.Tomislav Hengl撰写的非官方作者指南:Michael Gould•Wouter Gerritsma。 UnofficialGuide4Authors 2.R语言包rwrfhydro,社区贡献的工具箱,用于管理,分析和可视化...

胖胖雕
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部