JavaScript之数组

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

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

(完)

本文分享自微信公众号 - coding个人笔记(gh_2ce38b49dae1),作者:wade

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ES6之数组的扩展

    copyWithin方法:改变原数组,接收三个参数,在当前数组内部,将指定位置的成员复制到其他位置(数组函数参数的下标都是包前不包后)

    wade
  • 数组去重的几个方法

    数组去重很简单,大都运用数组的属性和方法,有很简单的,有复杂的,今天分享几个数组去重的方法。

    wade
  • 数组遍历

    之前讲了一些数组的方法,今天整理一下数组的遍历方法,有些方法不会用到,但是了解一下也是好的。

    wade
  • ES6数组操作方法

    concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,仅会返回被连接数组的一个副本。

    用户1437675
  • JavaScript中数组的操作方法(含ES6)

    push() 方法可向数组的末尾添加一个或多个元素,并返回新的数组长度。会改变原数组。

    Caleb
  • JavaScript数组创建及常见方法汇总(修订版)

    插入:可以向指定位置插入任意数量的元素,需要提供3个参数:起始位置、0(要删除的元素数量)、插入的元素

    用户1272076
  • 前端系列 |原生JS和jQuery循环遍历函数

    之前总是不清楚原生JS和jQuery中有哪些循环遍历函数,而且有时候还总是把原生JS方法当成jQuery方法来用,以致于项目总是报错,并且还不知道是什么原因。所...

    Tinywan
  • JavaScript数组创建及常见方法汇总

    插入:可以向指定位置插入任意数量的元素,需要提供3个参数:起始位置、0(要删除的元素数量)、插入的元素

    用户1272076
  • JavaScript(ES6之前)数组方法总结

    默认按升序排列数组项,排序时会调用每个数组项的 toString() 转型方法,然后比较得到的字符串,以确定如何排序。即使数组中的每一项都是数值, sort()...

    Leophen
  • 内置对象

    查找文档:学习一个内置对象的使用,只要学会其常用成员的使用即可,我们可以通过查文档学习,可以通过MDN/W3C来查询。 ​ Mozilla 开发者网络(MDN)...

    星辰_大海

扫码关注云+社区

领取腾讯云代金券