js数组

2018-07-15  本文已影响14人  励志摆脱懒癌的少女酱

数组的创建

字面量方式

  1. 直接赋值
    var a = [1, 2, 3];// [1,2,3]

  2. 构造器(new Array === Array)
    var a = Array(3); // [ , , ];只传一个参数的时候是指明数组长度;
    var a = new Array(1,2,3); //[1,2,3];

ES6的方法

  1. Array.of():返回所有参数组成的数组/空数组;
    let a = Array.of(3); //[3];
    解决上面构造器因参数个数不同导致的差异问题;

  2. Array.from():将对象转为真正的数组,不改变原对象,返回新的数组;

let obj = {0: 'a', 1: 'b', length: 2}; //具有length属性
let arr = Array.from(obj); //['a', 'b']
let arr = Array.from('ha'); //['h', 'a'],字符串具有Iterator接口;

数组的方法

改变原数组的方法

  1. ES5
//删除元素
let a = [1, 2, 3];
let b = a.splice(-1, 3); //b:[3], a:[1,2],因为-1是最后一个元素,只能删除3;
//删除并添加
let a = [1, 2, 3];
let b = a.splice(-2,1, 5); // b:[2], a:[1,5,3],
//不删除只添加
let a = [1, 2, 3];
let b = a.splice(-2,0, 5); // b:[], a:[1,5,2,3],
  1. ES6
[1,2,3].fill('a'); // ['a', 'a', 'a']
[1,2,3,4].fill(0, -3, -1); //[1,0,0,4]

不改变原数组的方法

  1. ES5
let a = {name: 'lily'};
let b = a.slice(); //a/b:{name: 'lily'}
b.name = 'bob'; //a/b:{name: 'bob'};

string.slice()是提取字符串的

let a = [1,[2]];
let b = [3].concat(a); // b:[3,1,[2]]
b[2].push(4);//a:[1,[2,4]]; b:[3,1,[2,4]];
  1. ES7
  1. 遍历数组且不改变原数组的方法
上一篇 下一篇

猜你喜欢

热点阅读