前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript之数组

JavaScript之数组

作者头像
wade
发布2020-04-23 17:24:26
3780
发布2020-04-23 17:24:26
举报

Array在JavaScript里面很常用,讲真的,平时开发除了循环数组和push数组之外,对于数组的其他方法和属性几乎都是用到的时候百度。今天自己整理一些数组的概念和方法,希望自己能记住,也为了以后使用的时候有地方直接查看。当然,太基础的东西就不说了。

首先创建数组有两种方法:使用Array构造函数和数组字面量方法。

var arr = new Array();

如果里面传递一个数字,就表示这个数组长度,如果里面传递对个参数。表示数组的内容。

var arr = new Array(3); //长度为3
var arr = new Array(3, 2); //长度为2,元素为3 2的数组

字面量的方法应该是我们最常用的:

var arr = [1, 2, 3];

数组可以单独设置长度,比如:

var arr = [1, 2, 3]
arr.length = 1;那么arr直接等于[1],如果arr.length = 100;那么数组长度为100,除了有元素的这几个之外,其他的输出都是undefined(arr[50] => undefined)

我们都知道Array实际上也是一个对象,我们用typeof检测数组的时候得到的是object,所以检测是否是数组要用instanceof arr instanceof Array,返回一个布尔值。

Array提供了一些列的方法:

push:接收任意数量参数,添加到末尾,改变原数组,返回添加后的数组长度。

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

pop:移除数组最后一位,改变原数组,返回移除的元素。

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

shift:移除第一个元素,改变原数组,返回移除的元素。

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

unshift: 接收任意数量参数,添加到最前面,改变原数组,返回添加后的数组长度

var arr = [88];
var len = arr.unshift(2, 3, 4);
console.log(len); //4
console.log(arr); //[2, 3, 4, 88]

reverse:反转数组顺序,改变原数组

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

sort:接收一个方法参数,没传默认根据字符串结果排序(不推荐),方法里面两个参数,返回-1、1、0。改变原数组。

var arr = [17, 3, 9, 16, 10, 2];
arr.sort(function (a, b) {
    console.log(arr);
    console.log(a);
    console.log(b);
    console.log('-----------');
    return a - b;
});

sort方法算是比较特殊的方法,有兴趣可以看看打印输出。

concat:基于之前的数组,把参数都拼接到数组末尾,不改变原数组,返回一个新的数组。接收任意多个参数。concat可以用来深拷贝。

var arr = [10, 2];
var newArr = arr.concat(9, 'fghkl', {name: 'wade'}, [8, 9]);
console.log(arr);
console.log(newArr);

slice:截取数组,不改变原数组,返回一个新的数组。如果参数超出数组的范围返回空数组,如果是传入负数则数组长度加上负数,然后截取。

传入一个参数,默认从当前位置截取到最末尾:

var arr = [10, 2, 8, 6, 7];
var newArr = arr.slice(1);
console.log(newArr); //[2, 8, 6, 7]

传入两个参数,从两个参数区间截取:

var arr = [10, 2, 8, 6, 7];
var newArr = arr.slice(1,4);
console.log(newArr); //[2, 8, 6]

splice:删除、替换、插入,替换跟插入的方法一样,改变原数组,返回删除的数组。

传入两个参数(如果只有一个,默认第二个为1):

var arr = [10, 2, 8, 6, 7];
var newArr = arr.splice(1,3);
console.log(newArr); //[2, 8, 6]
console.log(arr); //[10, 8, 7]

传入三个参数及以上相当于先删除然后插入:

var arr = [10, 2, 8, 6, 7];
var newArr = arr.splice(2, 0, 9, 45, 63, 78);
console.log(newArr); //[]
console.log(arr); //[10, 2, 9, 45, 63, 78, 8, 6, 7]

查找位置:indexOf、lastIndexOf,一个从头开始有个从末尾开始,接收两个参数,第一个是想要查找的元素,第二个是从哪里开始查找,找到其中一个之后就停止,存在返回元素下标,不存在返回-1。

var arr = [10, 2, 8, 9, 8, 6, 7];
console.log(arr.indexOf(8, 2)); //2
console.log(arr.indexOf(8, 3)); //4
console.log(arr.lastIndexOf(8)); //4

先整理了基础的用法,之后会整理一下循环遍历和迭代的方法。

(完)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 coding个人笔记 微信公众号,前往查看

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

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

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