数组Array

1、数组的创建方式(两种)

var arr = new Array();
或者
var str = ["1","2","3","4"];

数组的检测方法(也是两种)

var str = ["red","green","blue"]
console.log(str instanceof Array)  // 返回值为true
或者
var str = ["red","green","blue"]
console.log( Array.isArray(str))  //返回值为true

2、转换方法

所有对象都具有toLocaleString()、toString和valueof()方法。
toString和toLocaleString的返回值相同,都是每个值的字符串形成拼接,用逗号隔开。
valueOf的返回值还是数组。
列如

var str =["red","blue","green"]
        console.log(str.toString())   // 返回值为:red,blue,green
        console.log(str.toLocaleString())   // 返回值为:red,blue,green
        console.log(str.valueOf())  // 返回值为:(length为3) ["red", "blue", "green"]

join()方法 数组转字符串

var str =["red","blue","green"]
    console.log(str.join(""))  // 输出值为:redbluegreen
    console.log(str.join(","))  // 输出值为:red,blue,green
    console.log(str.join("|"))  //输出值为:red | blue | green

栈方法

栈是一种LIFO(后进先出)的数据结构,最后进来的先出去。
栈方法有:
1,push( )方法从最后面添加元素,并返回修改后的数组长度

var arr = [1, 4, 5, 6, 7, 7, 9];
console.log(arr.push(10)); //8 数组的长度
console.log(arr);  // [1, 4, 5, 6, 7, 7, 9,10];

2,pop():在数组的末尾删除任意参数,返回值为被删除的项。

var str =["red","blue","green"]
      console.log(str.pop())  // 输出值为:green;
      console.log(str)  // 输出值为:(4) ["red", "blue"]

队列方法

队列方法是一种先进先出(FIFO:frist in frist out),先进来的先出去
1,unshift:在数组的最前端添加参数,返回值为新的数组长度。

 var arr = [1, 2, 3, 4, 5, 6, 7];
console.log(arr.unshift(5)); //8返回新数组的长度
console.log(arr);//输出值为 (8)[5,1, 2, 3, 4, 5, 6, 7];

2,shift:删除数组最前端的一项,返回值为被删除的项。

  var arr = [1, 2, 3, 4, 5, 6, 7];
console.log(arr.shift()); //1返回被移除的项
console.log(arr);//输出值为:(6)[ 2, 3, 4, 5, 6, 7];返回数组

重排序方法

reverse()方法:反转数组项的顺序。

     var arr = [1,2,3,4,5];
      arr.reverse();
      console.log(arr);  //5,4,3,2,1

sort()方法:排序

var arr = [5,8,4,6,9]
      console.log(arr.sort(function (a,b){
                    return a-b   // 升序
}))         // 输出值为 (5) [4, 5, 6, 8, 9];
         console.log(arr.sort(function (a,b){
                    return b-a   // 降序
}))         // 输出值为 (5) [9, 8, 6, 5, 4]

操作方法

concat:连接两个或几个数组,返回值为连接后新的数组。

        var arr1 = [1,2];
        var arr2 = [3,4,5];
        var arr3 = arr1.concat(arr2); //// 输出值为:(5) [1, 2, 3, 4,5]

slice(start,end):用于提取或截取数组的某一个部分,返回值为被截取的部分。
括号内的值都为数组的下标,只能从左往右进行截取,返回的值从start开始,结束语end的前一项。如果括号内只有一个值,则返回的值为从开始索引值的项到结束。

var arr = [3,4,5,6,7]
       console.log(arr.slice(1,3))  // 输出值为:4,5
       console.log(arr.slice(2))  // 输出值为:5,6,7

splice(index,howmany,ele1,ele2,......) 方法用于插入、删除或替换数组的元素
括号内的第一个值为数组的下标,第二个值为个数,后面的值都为要添加的项。

添加:
添加时,返回的值为 [ ]空,被添加的项会被添加在start的前面。

var arr = [1,2,3]
        console.log(arr.splice(1,0,4))    // 输出值为:[ ] 空
        console.log(arr)  // 输出值:(4) [1,4,2,3,]

删除:
删除时,返回的值为被删除的项。

var arr = [1,2,3]
        console.log(arr.splice(1,2))    // 输出值为:(2) [2, 3]
        console.log(arr)  // 输出值:[1]

替换:
替换时,返回的值为被替换掉的项。

var arr = [1,2,3]
        console.log(arr.splice(1,1,4))    // 输出值为:[2]
        console.log(arr)  // 输出值:(3) [1,4,3]

位置方法

   1) indexOf() 返回某个指定的字符串值或者某个数组元素值在字符串或者数组中首次出现的位置,找不到返回-1
        arr.indexOf( search , index )
       search 指的是 要查找的项
        index 指的是 从哪个位置开始
        var arr = [1,2,3,4,2,5];
        console.log( arr.indexOf( 2 ) );//1
        console.log( arr.indexOf( 2 , 3 ) );//4
        console.log( arr.indexOf( "2" ) );//-1
    2) lastIndexOf()     返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索
        var arr = [1,2,3,4,2,5];
        console.log( arr.lastIndexOf( 2 ) );//4
        console.log( arr.lastIndexOf( 2 , 3 ) );//1
        console.log( arr.lastIndexOf( "2" ) );//-1

迭代方法

  1)Array.for Each   从头到尾遍历数组,没有返回值
      第一个参数:元素
      第二个元素:下标
      第三个元素:原数组
        var arr = [1,2,3,4,5,4,3,2,1];
        var newarr = arr.forEach(function(item,index,arry){
        console.log(newarr);//undefined
       })
  2)Array.map();(映射)
     对数组的每一项运行给定函数,返回每次函数调用的结果组成的数组。
      var arr = [1,2,3,4,5,4,3,2,1];
      var newarr = arr.map(function(item,index,arry){
      return item*2
      })
      console.log(newarr);//2, 4, 6, 8, 10, 8, 6, 4, 2
  3)Array.filter()
      对数组的每一项运行给定函数,返回该函数会返回true的项组成的数组。
      return条件://元素是否满足定义的条件
      var arr = [1,2,3,4,5,4,3,2,1];
      var newarr = arr.filter(function(item,index,arry){
      return item>2
      })
      console.log(newarr);//,3,4,5,4,3
  4)Array.every()和Array.some()
      every():每一项都返回true,则返回true
      some():有一项返回true,则返回true
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336

推荐阅读更多精彩内容