javascript数组认识

ECMAScript 数组的每一项可以保存任何类型的数据, 数组的大小是可以动态调整的,即可以随着数据的添加自动增长以容 纳新增数据

数组创建的方式

  1. 字面量创建   var arr =[1,2,3,4 ];  与对象一样,在使用数组字面量表示法时,也不会调用 Array 构造函数
  2. 构造函数创建  var arr =new Array(1,2,3,4 );
  3. 字符串转数组类型  var arr =Array(1,2,3,4 );
  4.   var arr = new Object( [ ] );

javascript中数组是基于对象创建的,是一个引用列表,数组下标可以使用字符型,即 arr ["1"] 和  arr [ 1 ]是一样的。js和其他语言不同的是数组内部会把下标转换成字符型存储。使用console.log打印时可以看出 下标 0 前后带有双引号,而其他没有。

                                                             

 数组的紧密性

  如果给数组变量赋值时超出下标范围,则会在中间添加空元素。

 arr [-1]=10 这样会给数组添加一个 “-1”属性,属性值是 10,因为数组是基于对象创建的,数组的length 不会变。

数组的方法

  arr.push() 在数组尾部添加元素,并返回数组新长度。

  arr,pop() 在数组尾部删除一个元素,并返回被删除的元素

  arr.shift() 删除第一个元素,返回被删除的数据。

arr.unshift ( ) 在首部插入一个新元素,返回数组新长度。

  var arr1 = arr.concat( 5,6,7,8)  连接数组,返回新数组,原数组不改变。 括号内不写内容可直接复制数组,切断引用关系。

 var str = arr.join() ,返回用所给符号分隔开后的字符串,原数组不变。

  var arr1 =  arr.slice()   返回从参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项— —但不包括结束位置的项。slice()方法不会影响原始数组

 var arr1 =arr.splice(起始位置,要删除的项数,要插入的项...) 添加 删除 替换 元素,返回被删除元素组成的数组。原数组会改变。

indexOf() 查找元素在数组中下标,未找到返回-1,如果有第二个参数,表示开始查找的起始位置。

   var index =-1;
      while(~(index=arr.indexOf(value,index+1)))  { console.log(index);}  //查找所有的下标。
 
lastIndexOf()从后向前查找

判断是否是数组

 

Array.isArray(arr);

Object.prototype().tostring.call(arr) ===" [Object Array] "

arr.constructor===Array

(arr instanceof Array);instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上
原文地址:https://www.cnblogs.com/anin/p/12672510.html