JS 学习之Array 对象

1.Array.isArray:

方法返回一个布尔值,表示参数是否为数组。它可以弥补typeof运算符的不足。

typeof运算符只能显示数组的类型是Object,而Array.isArray方法可以识别数组。

 

valueOf:

方法是一个所有对象都拥有的方法,表示对该对象求值。不同对象的valueOf方法不尽一致,数组的valueOf方法返回数组本身。

var arr = [1, 2, 3];
arr.valueOf() // [1, 2, 3]

toString方法也是对象的通用方法,数组的toString方法返回数组的字符串形式。

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

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

push方法用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组。

 

pop方法用于删除数组的最后一个元素,并返回该元素。注意,该方法会改变原数组。

对空数组使用pop方法,不会报错,而是返回undefined

pushpop结合使用,就构成了“后进先出”的栈结构(stack)

 

shift方法用于删除数组的第一个元素,并返回该元素。注意,该方法会改变原数组。

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

var list = [1, 2, 3, 4, 5, 6];
var item;

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

list // []

pushshift结合使用,就构成了“先进先出”的队列结构(queue)

 

unshift方法用于在数组的第一个位置添加元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组。

unshift方法可以接受多个参数,这些参数都会添加到目标数组头部。

 

join方法以指定参数作为分隔符,将所有数组成员连接为一个字符串返回。如果不提供参数,默认用逗号分隔。

如果数组成员是undefinednull或空位,会被转成空字符串

 

通过call方法,这个方法也可以用于字符串或类似数组的对象。

Array.prototype.join.call('hello', '-')
// "h-e-l-l-o"

var obj = { 0: 'a', 1: 'b', length: 2 };
Array.prototype.join.call(obj, '-')
// 'a-b'

除了数组作为参数,concat也接受其他类型的值作为参数,添加到目标数组尾部。

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

如果数组成员包括对象,concat方法返回当前数组的一个浅拷贝。所谓“浅拷贝”,指的是新数组拷贝的是对象的引用。

var obj = { a: 1 };
var oldArray = [obj];

var newArray = oldArray.concat();

obj.a = 2;
newArray[0].a // 2

上面代码中,原数组包含一个对象,concat方法生成的新数组包含这个对象的引用。所以,改变原对象以后,新数组跟着改变

 

posted @ 2018-05-11 19:11  心无引擎,眼无流派  阅读(95)  评论(0编辑  收藏  举报