【转】JavaScript中15种数组的使用方法总结

转载自:JavaScript中15种数组的使用方法总结_anqiaoyun的博客-CSDN博客

本文总结了JavaScript中的15种数组的使用方法,
如果需要ES6中的数组使用的方法:findfiltereverysomeincludesreduce,请点击这里

1.push 向数组的后面添加一项或多项
参数可以是一个也可以是多个,
返回值为新数组的长度
修改原数组

var ary = [1,2];
var num = ary.push('a');
console.log(num); //3
console.log(ary); //[1, 2, "a"]

2.pop 删除数组的最后一项
没有参数
返回值为被删除的项
修改原数组

var ary = ["a", "b",1,2];
var a = ary.pop();
console.log(ary);//["a", "b", 1]
console.log(a); //2

3.unshift 往数组的前面添加一项或多项
参数可以是一个也可以是多个
返回值为新数组的长度
修改原数组

var ary = ["a", "b",1,2];
var num = ary.unshift('3','4');
console.log(num); //6
console.log(ary); //["3", "4", "a", "b", 1, 2]

4.shift 删除数组的第一项
不需要参数
返回值为被删除的那一项
修改原数组

 var ary = ["a", "b","c","d"];
 var ary1 = ary.shift();
console.log(ary1); //a
console.log(ary); //["b", "c", "d"]

5.splice 可以往数组的某一个位置添加一项或多项,还可以删除和替换项
返回值是个数组,数组中为被删除的项
修改原数组
参数:
1个参数,ary.splice(0),从0开始删除到最后
2个参数,ary.splice(1, 2), 1是索引,2删除的个数
多个参数,ary.splice(1, 2, “x”, “y”…),1是索引,2是删除的个数,“x”,“y”,…添加到原来删除的位置;

6.indexOf 返回字符串或数组中检索指定字符第一次出现的位置,不存在返回下标-1,存在返回第一次匹配的索引值
参数:被查询的项;
返回值:第一次匹配的索引;不存在返回下标-1;
不修改原数组;

7.lastIndexOf 返回字符串或数组中检索指定字符最后一次出现的位置,不存在返回下标-1,存在返回第一次匹配的索引值
参数为被查询的项
返回值:索引值,不存在返回下标-1
不修改原数组

var array = ['abc','def','xyz','def'];
var f = array.indexOf('def');
var l = array.lastIndexOf('def');
console.log(f); //1
console.log(l); //3
console.log(array); //["abc", "def", "xyz", "def"]

8.slice 截取
返回值为截取的数组
不修改原数组
没有参数表示数组的克隆
参数为负数时,默认加上数组的长度处理成正数

var arr = [1,2,3,4,5,6,7];
var newarr = arr.slice(1,5);  //包前不包后
var newarr1 = arr.slice(-3,-1);
console.log("arr" + arr);   //1,2,3,4,5,6,7
console.log("newarr" + newarr); //2,3,4,5
console.log("newarr1" + newarr1);

9.sort 排序 修改原数组
返回值为排序后的数组
没有参数时只能排序数组成员项是相同位数的数字

var arr = [1,100,33,77,500,66];
arr.sort();
console.log(arr);//[1, 100, 33, 500, 66, 77]

arr.sort(function(a,b){
    //从小到大排
    return a-b;
    //从大到小排
    return b-a;
 });
console.log(arr);

10.reverse 倒序 不需要传参数
修改原数组

var arr = [1,100,33,77,500,66];
arr.reverse();
console.log(arr);

11.concat 不修改原数组,返回值为拼接的新数组

var arr = [1,2];
var arr1 = arr.concat([3,4],[5,6],[7,8]);
console.log(arr1);

concat不传参数时表示数组的克隆

var arr2 = [1,3,5];
var arr3 = arr2.concat();
console.log(arr2 == arr3);  //false
console.log(arr2);//[1, 3, 5]
console.log(arr3); //[1, 3, 5]

//这也是复制数组的方法
var arr4 = [100,200,300];
var arr5 = arr4;
console.log(arr4 == arr5); //true
console.log(arr5);

12.join 将数组拼接成字符串,
不修改原数组

var ary = ['2019','06','10']
var ary1 = ary.join("-")
console.log(ary1);//2019-06-10

不传参数时默认用逗号隔开

var ary2 = ary.join();
console.log(ary2);//2019,06,10

var ary3 = ary.join("");
console.log(ary3);//20190610

13.map 映射 根据原来数组的每一项映射一个新数组
参数为一个回调函数
返回值为映射得到的新数组,不修改原数组
数组的length是几,回调函数就执行几次

var ary = ["a","b","c","d","e"];
var ary1 = ary.map(function(v,i,arr){ 
    //v value  遍历数组的每一项
    console.log(v);
    //i index  遍历数组的索引
    console.log(i);
    //arr 原数组
    console.log(arr);

    return v+'o'; //["ao", "bo", "co", "do", "eo"]
    //返回值为新数组中对应的每一项
});
console.log(ary1);

14.forEach 用来遍历数组
参数为一个回调函数
特点:没有返回值 不修改原数组
数组的length是几,回调函数就执行几次

var arry = [11,22,33,44];
var arry1 = arry.forEach(function(v,i,arr){
     //v value  遍历数组的每一项
    console.log(v);
    //i index  遍历数组的索引
    console.log(i);
    //arr 原数组
    console.log(arr);

     return v+'o'; //没有返回值
 });
console.log(arry1); //undefined

forEach相当于for循环

for (var i = 0; i < arry.length; i++) {
    arry[i];
    i;
    arry;
}

15.toString 将数组转化成字符串 不修改原数组
不需要参数,返回值是一个字符串

var array = ["q","w","e","r"];
var array1 = array.toString();
console.log(array1);//q,w,e,r

注意啦:
类数组不能使用数组的方法
类数组指arguments,document.getElementsByTagName获取的类数组

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