数组

1.概述

Array是JavaScript的内置对象,同时也是一个构造函数,可以用它生成新的数组。
作为构造函数时,Array可以接受参数,但是不同的参数,会使得Array产生不同的行为。

new Array(1); 返回length为1的空数组;
new Array(1, 2);

2. 静态方法

isArray方法: 用来判断一个值是否为数组。它可以弥补typeof运算符的不足。

var a = [1, 2, 3];

typeof a // "object"
Array.isArray(a) // true

上面代码表示,typeof运算符只能显示数组的类型是Object,而Array.isArray方法可以对数组返回true。

3. Array实例的方法

valueOf: valueOf方法返回数组本身。
toString: 返回数组的字符串形式。

var a = [1, 2, 3];
a.toString() // "1,2,3"

var a = [1, 2, 3, [4, 5, 6]];
a.toString() // "1,2,3,4,5,6"

push: 用于在数组的末端添加一个或多个元素,并返回添加后的数组的长度。

var a = [];

a.push(1) // 1
a.push('a') // 2
a.push(true, {}) // 4
a // [1, 'a', true, {}]

pop: 用于删除数组的最后一个元素,并返回该元素。

var a = ['a', 'b', 'c'];

a.pop() // 'c'
a // ['a', 'b']

join: 以参数作为分隔符,将所有数组成员组成一个字符串返回。

var a = [1, 2, 3, 4];

a.join() // "1,2,3,4"
a.join('') // '1234'
a.join("|") // "1|2|3|4"

concat: 用于多个数组的合并。它将新数组的成员,添加到原数组的尾部,然后返回一个新数组。

['hello'].concat(['world'])
// ["hello", "world"]

['hello'].concat(['world'], ['!'])
// ["hello", "world", "!"]

[1, 2, 3].concat(4, 5, 6)
// [1, 2, 3, 4, 5, 6]

shift: 用于删除数组的第一个元素,并返回该元素。

var a = ['a', 'b', 'c'];

a.shift() // 'a'
a // ['b', 'c']

shift: 可以遍历并清空一个数组。

var list = [1,2,3,4,5,6,7,8,9,10];

var item;

while (item = list.shift()) {
    console.log(item);
}

list // []

unshift: 用于在数组的第一个位置添加元素,并返回添加新元素后的数组长度。

var a = ['a', 'b', 'c'];

a.unshift('x'); // 4
a // ['x', 'a', 'b', 'c']

reverse: 用于颠倒数组中元素的顺序,使用这个方法以后,返回改变后的原数组。

var a = ['a', 'b', 'c'];

a.reverse() // ["c", "b", "a"] 
a // ["c", "b", "a"] 

slice: 用于提取原数组的一部分,返回一个新数组,原数组不变。
它的第一个参数为起始位置(从0开始),第二个参数为终止位置(但该位置的元素本身不包括在内)。如果省略第二个参数,则一直返回到原数组的最后一个成员。

// 格式
arr.slice(start_index, upto_index);

// 用法
var a = ['a', 'b', 'c'];

a.slice(1,2) // ["b"]
a.slice(1) // ["b", "c"]
a.slice(0) // ["a","b","c"]
a.slice(-2) // ["b", "c"]
a.slice(4) // []
a.slice(2, 6) // ["c"]
a.slice(2, 1) // []

splice: 用于删除原数组的一部分成员,并可以在被删除的位置添加入新的数组成员。它的返回值是被删除的元素。该方法会改变原数组。

// 格式
arr.splice(start_index, count_to_remove, addElement1, addElement2, ...);

// 用法
var a = ["a","b","c","d","e","f"];

a.splice(4,2)
// ["e", "f"]

a
// ["a", "b", "c", "d"]

4. ECMAScript 5 新加入的数组方法

map: 对数组的所有成员依次调用一个函数,根据函数结果返回一个新数组。

var numbers = [1, 2, 3];

numbers.map(function(n) { return n+1 });
// [2, 3, 4]

numbers
// [1, 2, 3]

forEach: 数组实例的forEach方法与map方法很相似,也是遍历数组的所有成员,执行某种操作,但是forEach方法没有返回值,一般只用来操作数据。如果需要有返回值,一般使用map方法。

var arr = [1, 2, 3, 4, 5, 6, 7];
arr.forEach(function(ele) {
    console.log(ele);
})

filter:依次对所有数组成员调用一个测试函数,返回结果为true的成员组成一个新数组返回。

var arr = [1, 2, 3, 4, 5, 6, 7];
console.log(arr.filter(function(elem) {
    return elem > 3;
}))

转载于:https://www.cnblogs.com/LifeiBoke/p/6752803.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值