JavaScript内置对象-Array

▓▓▓▓▓▓ 大致介绍

  除了Object之外,Array类型恐怕就是JavaScript种最常用的类型了,JavaScript中的数组与其他语言中的数组有很大的区别,例如,数组的每一项可以存放任何值,并且数组的大小事可以动态调整的

 

▓▓▓▓▓▓ 创建数组的两种方法

  创建数组有两种方法:一是用构造函数,二是用对象字面量的方法

  构造函数方式

  使用Array构造函数

var colors = new Array();

 

  创建一个含有二十项的数组

var colors = new Array(20);

 

  创建一个包含三项的数组

 var colors = new Array("pink","black","white");

 

  对象字面量方式

  数组字面量由一对包含数组项的方括号表示

 var colors = ["red","blue","green"];

 

▓▓▓▓▓▓ length属性

  JavaScript数组中的length是没有上界的,如果用大于当前length值的数字作为下标来储存值,那么数组就会被扩充来容纳这个元素。

var empty = [];
empty.length;    //0
empty[100] = 'QQQ';
empty.length;    //101
//[]后置下标运算符把它所包含的表达式转换成一个字符串,如果该表达式有toString方法,就使用该方法的值
empty['100']; //QQQ

 

  如果把length设小将导致所有下标大于等于新length的属性被删除

var numbers = [
'zero','one','two','three','false','12'
];
numbers.length = 2;
console.log(numbers);    //["zero", "one"]

 

▓▓▓▓▓▓ in运算符

  检查某个键名是否存在的in运算符,也可以适用于数组

var myArray = [1,'2','name','23e'];

0 in myArray //true
2 in myArray //true
4 in myArray //false

 

  注意:如果某个位置的值为0,也会返回false

var a = [];
a[100] = 1;
a[3] in myArray; //false

 

▓▓▓▓▓▓ 数组的遍历

  数组的遍历通常是用for或者while循环,并不推荐for..in循环

var a = [1, 2, 3];

// for循环
for(var i = 0; i < a.length; i++) {
  console.log(a[i]);
}

// while循环
var i = 0;
while (i < a.length) {
  console.log(a[i]);
  i++;
}

var l = a.length;
while (l--) {
  console.log(a[l]);
}

 

  还有一种遍历方法就是使用forEach(),在后面会讲到

 

▓▓▓▓▓▓ 数组的空位

  当数组的两个逗号之间没有任何值,那么这个数组就有空位

  数组的空位是不会影响length属性,并且访问空位会返回undefined,使用delete删除数组元素,会返回空值

var myArray = [1,'2',,,];

console.log(myArray.length); //4
console.log(myArray[3]); //undefined

 

  数组的某个位置是空位,与某个位置是undefined,是不一样的。如果是空位,使用数组的forEach方法、for...in结构、以及Object.keys方法进行遍历,空位都会被跳过

var a = [, , ,];

a.forEach(function (x, i) {
  console.log(i + '. ' + x);
})
// 不产生任何输出

for (var i in a) {
  console.log(i);
}
// 不产生任何输出

Object.keys(a)
// []

 

  如果某个位置是undefined,遍历的时候就不会被跳过。

 

▓▓▓▓▓▓ 数组方法

  我的这这篇博客详细的写了有关数组的方法,这里就不在重复http://www.cnblogs.com/qqandfqr/p/5558199.html

 

参考资料:

      阮一峰JavaScript标准参考教程(alpha)-语法-数组

      JavaScript语言精粹第六章

      JavaScript高级程序设计(第三版)第五章 Array类型

  

  

posted @ 2017-02-25 16:57  老板丶鱼丸粗面  阅读(285)  评论(1编辑  收藏  举报