前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS数组的创建与使用方法

JS数组的创建与使用方法

作者头像
前端_AWhile
发布2019-08-29 14:50:03
2.4K0
发布2019-08-29 14:50:03
举报
文章被收录于专栏:前端一会前端一会

1、Array构造函数创建数组

代码语言:javascript
复制
var arr1 = new Array();     //创建一个空数组
var arr2 = new Array(20);   //创建一个包含20项的数组
var arr3 = new Array('ni', 'min', 'na');    //创建一个包含3个字符串的数组

2、数组字面量创建数组

代码语言:javascript
复制
var arr1 = [];    //创建一个空数组
var arr2 = [20];    //创建一个包含1项的数组
var arr3 = ['ni', 'min', 'na'];

3、读取和设置数组的值

代码语言:javascript
复制
var arr8 = ['ni', 'min', 'na'];
arr8[arr8.length] = 'xiaomin';        //在下标为3处(也就是数组尾部)添加新的一项
console.log(arr8.length)            // 4 现在arr8数组长度为4
console.log(arr8[arr8.length-1]);    // xiaomin 数组最后一项的值
arr8.length = arr8.length-1;        //删除数组最后一项
console.log(arr8.length);            //3 现在arr8数组长度为3
console.log(arr8[arr8.length-1])    //na 数组当前最后一项的值

4、Array.isArray(对象名) 方法判断对象是否为数组

代码语言:javascript
复制
console.log(Array.isArray(arr8));    //true
var obj = new Object();
console.log(Array.isArray(obj));    //false
var func = new Function();
console.log(Array.isArray(func));    //false
var date = new Date();
console.log(Array.isArray(date));    //false

6、join()方法

代码语言:javascript
复制
var arr9 = [10, 'ni', 'na', 'min', 99, true];
console.log(arr9.join());        //10,ni,na,min,99,true
console.log(arr9.join('-'));    //10-ni-na-min-99-true

7、创建一个用字符串abc分隔的拥有4个项成员的数组

代码语言:javascript
复制
function repeatString(str, n){
    return new Array(n+1).join(str);
}
console.log(repeatString('abc', 3));

8、push()和pop()

代码语言:javascript
复制
var arr10 = ['ni', 'na', 'min'];
var count = arr10.push(10, 'xia');
console.log(count);        //5
console.log(arr10);        //(5) ["ni", "na", "min", 10, "xia"]

var val = arr10.pop();
console.log(val);        //xia

9、shift()和unshift()

代码语言:javascript
复制
var arr11 = ['ni', 'na', 'min'];
var val = arr11.shift();
console.log(val);    //ni
console.log(arr11);    //(2) ["na", "min"]

var count = arr11.unshift('nitx');
console.log(count);    //3
console.log(arr11);    //(3) ["nitx", "na", "min"]

var arr12 = ["a", "b", "c", "d"];
console.log(arr12);
console.log(arr12.sort());

function compare(val1, val2){
    if(val1 < val2){
        return 1;
    }else if(val1 > val2){
        return -1;
    }else{
        return 0;
    }
}

var arr13 = [12, 14, 52, 3];
console.log(arr13.sort(compare));  //(4) [52, 14, 12, 3]

var arr14 = [12, 14, 52, 3];
console.log(arr14.reverse());     //(4) [3, 52, 14, 12]
console.log(arr14);               //(4) [3, 52, 14, 12]   使用reverse()方法反转原数组后,原数组项改变

var arr15 = [3, 4, 9];
var arr16 = arr15.concat([11, 13],6);
console.log(arr16);     //(6) [3, 4, 9, 11, 13, 6] 原数组副本
console.log(arr15);     //(3) [3, 4, 9] 原数组

var arr15 = [3, 4, 9];
var arr17 = arr15.concat([11, [12, 17]]);
console.log(arr17);     //(5) [3, 4, 9, 11, Array(2)]
console.log(arr17[4]);  //(2) [12, 17]  传入二维数组参数的情况,会将二维数组参数中数组项当作一项传入到原数组中
console.log(arr15);     //(3) [3, 4, 9] 原数组

var arr18 = [1, 3, 5, 7, 9, 11];
var arrCopy = arr18.slice(1);
var arrCopy2 = arr18.slice(1, 4);
var arrCopy3 = arr18.slice(1, -2);
var arrCopy4 = arr18.slice(-4, -1);

console.log(arrCopy);       //(5) [3, 5, 7, 9, 11]  一个参数时,返回从基于0的该参数位置数到原数组末尾项组成的新数组
console.log(arrCopy2);      //(3) [3, 5, 7]         两个参数时,返回从基于0的初始下标位置项到结束下标位置项组成的新数组,初始下标<=新数组<结束下标
console.log(arrCopy3);      //(3) [3, 5, 7]         参数中有负数时,用基于1的数组项数减去负数所得值作为基于0的参数下标来计算新数组包含项的区间
console.log(arrCopy4);      //(3) [5, 7, 9]
console.log(arr18);         //(6) [1, 3, 5, 7, 9, 11] 原数组没有发生改变

var arr19 = [1, 3, 5, 7, 9, 11];
console.log(arr19.indexOf(5));      //2 返回数组值5在数组中的位置
console.log(arr19.lastIndexOf(5));  //2

console.log(arr19.indexOf(5, 2));       //2 第二个参数2表示从基于0的数组下标起始位置(2)开始向后索引
console.log(arr19.lastIndexOf(5, 4));   //2 第二个参数4表示从基于0的数组下标起始位置(4)开始向前索引

console.log(arr19.indexOf(5, 3)); //-1  第二个参数3表示从基于0的数组下标起始位置(3)开始向后索引,由于数组项5在数组中的位置是2,所以从第基于0的第3项开始向后索引时没有找到值5,则返回-1

console.log(arr19.indexOf("5"));  //-1 由于这两个索引方法在比较第一个参数与数组中的每一个项时,使用的是全等操作符,而"5"与原数组中任一项都不相等,所以找不到该值,返回-1


var arr20 = [1, 3, 5, 7, 9, 11];

//删除 
var arrRemoved = arr20.splice(0, 2);    //要删除的第一项的位置、要删除的项数
console.log(arr20);         //(4) [5, 7, 9, 11]
console.log(arrRemoved);    //(2) [1, 3] 返回被删除的项组成的新数组

//插入
var arrRemoved2 = arr20.splice(2, 0, 4, 6); //起始位置、0(要删除的项数)、要插入的项
console.log(arr20);         //(6) [5, 7, 4, 6, 9, 11]  
console.log(arrRemoved2);   //[] 没有删除项时,返回的是空数组

//替换
var arrRemoved3 = arr20.splice(1, 1, 2, 4); //起始位置、要删除的项数、要插入的任意数量的项
console.log(arr20);         //(7) [5, 2, 4, 4, 6, 9, 11]
console.log(arrRemoved3);   // [7]
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端小二 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档