02 - 数组

数组概念


数组:一种数据结构,一组按顺序排列的集合。用 [  ] 表示,元素之间用  ,逗号来分割,数组可以包括任意数据类型,通过索引来访问每个元素,可以增删、查找、传递。

数组形式:

var a = new Array();     //括号内空

var b = new Array(data);      //必须是数字,必须是1位(不能10,2),指数组内包含几个元素,是可以赋值动态增长的

var c = new Array(d1,d2,...,dn);     //把数值放进去,如果只有一个d1,那会等于第二种的size

var d = [ d1,d2,...dn]      //字面量方式创建数组,从0开始赋值,第一位d1是第0项

var  dd = [1, 3,  5, ‘hello’, true, null]

dd[0];        //返回索引第1个元素是从0开始,即1

dd[5];       //返回索引第5个元素,即 true

访问数组:

a[0]   访问数组a中的第1个数据

a[x] = n   在数组a中创建了一个新的单元 x , 并且赋值n

可扩展的数组长度示例:

var colors = ['red', 'blue', 'green'];

colors.length = 4;      //数组的长度定为4,实际为3,此次第4是undifind 的

alert(colors[3]);       // undifind 但不是错误

colors[colors.length] = 'black';    // colors.length 是比实际数组数大1个的,colors[3] 实际的数组长度是4

colors[colors.length] = 'brown';   //这种是可扩展的很好的写法,即定义 当前数组的最后一位加1 的数组颜色


数组的操作


堆栈: push 、pop     队列:shift 、unshift

push() 向末尾添加元素      pop() 删除最后一个元素    

shift() 删除第一个元素        unshift() 给前端添加一个元素并返回最新的元素长度

var t = ['a', 'b'];  

t.push('A', 'B');   // push()末尾增加两位,返回数组的长度为4

t ; // ['a', 'b', 'A', 'B']

t.pop(); // pop()去掉最后一位'B'

t.pop(); // pop()去掉最后一位'A'

t;// ['a', 'b']

t.shift();  // shift()去掉第一位‘a’

t;  //['b']


排序:sort   、 reverse

shot() 按照默认顺序顺序(不是大小顺序)  、 reverse()反转输入顺序,从后往前   

var t = ['B', 'A', 'D', 'C'];

t.sort();

t; //  ['A', 'B', 'C', 'D']

t.reverse();

t; // ['A', 'B', 'C', 'D'];

sort()默认是按照字符串的字母顺序排序,如果函数为数值,就需要提供一个函数,用来比较并返回一个用于说明两个值的相对顺序的数字。见下function示例代码:

function compare(value1,value2){

if (value1<value2){                      //如A小于B,在数组中A应该出现在B之前,则返回小于0的值

     return -1;   

}else if (value1>value2){           //如A大于B,在数组中A应该出现在B后面,则返回大于0的值

      return 1;  

}else {                                         //如两个参数相等,返回0

      return 0;

}

var box = [0, 1, 5, 10, 15]          // 假如改为字符串,则顺序还按字符串字母顺序['0', '1', '10', '15', '5']

alert(box.sort(conpare));        // 返回 ['0', '1', '5', '10', '15']  此时就调用了compare的函数比较


链接 concat

concat() 当前的数组和另一个数组连接起来,并返回一个新的数组

var ord = ['A', 'B', 'C', 'D'];

var add = ord.concat([1, 2, 3]);

add;      //数组add返回数组相加后的结果 ['A', 'B', 'C', 'D', 1, 2, 3]

ord;      //没有改变依旧返回 ['A', 'B', 'C', 'D'];


连接符: join

join() 把数组的每个元素之间都用指定字符连接起来,并返回一个用-链接的字符串,原数组不变化还是object

var ord =  ['A', 'B', 'C', 'D'];

ord.join('-');//数组元素间加入字符 - ,返回‘A-B-C-D’


多功能: splice

splice(index, howmany, itema,...,itenN)  修改数组的万能方法,分别是(必须|整数|开始位置,必须|删除的个数,可选| 插入新的元素),返回一个新的数组

var ord = ['red', 'green', 'black', 'brown'];

ord.splice(1, 2);//从第1个元素‘green’位置开始 ,删除2个元素,没有插入新的元素

ord; // 得到 ['red', 'brown'];

ord.splice(0, 0, 'yellow');//从第0个元素‘brown’位置开始 ,删除0个元素,并插入新的元素 ‘yellow’

ord; // 得到 ['red', 'yellow', 'brown'];


索引 indexOf  、 slice

indexOf() 搜索一个指定元素的位置  slice()从数组某个元素截取

var ord = [10, 20, '30', 'red', 'green'];

ord.index(10) ;//数组ord内元素10的索引位置为 0

ord.index(30); //数组ord内元素30的索引位置没找到,返回-1,区分30 和‘30’

ord.index('red');  //数组ord内元素‘red’的索引位置为 3

ord.slice(1, 3); //从1开始索引,到3结束,但不包括3  [20, '30']

ord.slice(2); //从2开始索引,直到结束   ['30', 'red', 'green']

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • HTML 内容 CSS样式 JS动作 JS是一种可以在浏览器运行的脚本语言,用来实现用户交互、数据处理 基本语...
    王叮叮当当响阅读 191评论 0 1
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,057评论 0 13
  • 基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(...
    oyan99阅读 5,052评论 0 18
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,151评论 0 4
  • 前些日子聆听了一堂心理学公益课,老师开门见山,列举老人高价买保健品的例子,进而引出营销中的“类催眠现象”。 在...
    左左宝贝8145阅读 183评论 0 0