美文网首页
JavaScript之数组

JavaScript之数组

作者: wade3po | 来源:发表于2019-02-06 08:53 被阅读17次

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

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

相关文章

  • Javascript数组系列三之迭代方法2

    今天我们来继续 Javascript 数组系列的文章,上文 《Javascript数组系列二之迭代方法1》 我们说...

  • JavaScript数组去重

    JavaScript中数组的常用操作之数组去重 方法一 方法二

  • JavaScript查找数组

    JavaScript中数组的常用操作之查找数组 Array.includes() 方法 array.include...

  • JavaScript数组的遍历

    JavaScript中数组的常用操作之数组的遍历 for..of 循环 for(const item of ite...

  • JavaScript数组的映射

    JavaScript中数组的常用操作之数组的映射 Array.map()方法 Array.from(array[,...

  • JavaScript数组的连接

    JavaScript中数组的常用操作之数组的连接 Array.concat() 方法 Array.concat(a...

  • JavaScript获取数组的片段

    JavaScript中数组的常用操作之获取数组的片段 Array.slice() 方法 Array.slice([...

  • Javascript之数组

    数组 length属性取得Array的长度:请注意,直接给Array的length赋一个新的值会导致Array大小...

  • JavaScript之数组

    数组 数组:是按次序排列的一组值。每个值的位置都有编号(从0开始),整个数组用方括号表示; 就是一个容器可以存储很...

  • javascript之数组

    1,在javascrit中创建数组的方式有两种。 (1)如图所示通过创建一个数组对象来创建数组。 如上图所示,这样...

网友评论

      本文标题:JavaScript之数组

      本文链接:https://www.haomeiwen.com/subject/genssqtx.html