js_数组

一.定义

数组(array)是按次序排列的一组值。每个值的位置都有编号(从 0开始),整个数组用方括号表示。


var arr = [1,2,'hh',...];


下标从0开始!

注意:

  • 可以先定义,后赋值 var arr = []; arr[0] = 1; arr[1] = 2; arr[2] = 'hh';
  • 任何类型的数据都可以放到数组中
  • length属性
    返回数组的成员数量
  • 可以根据下标,获取数组中的相应元素,如果下标大于数组元素个数,则返回undefined!

二.数组的遍历

• for
• while
• for...in... var arr = [1,2,'hh'];
for (var i in arr) {
    console.log(arr[i]);
}
//1 2 hh

三.数组的方法

• 静态方法:Array.isArray()
返回一个布尔值,表示参数是否为数组。它可以弥补 typeof 运算符的不足• push()方法
用于在数组的末端添加一个或多个元素,并返回添加新元 素后的数组长度。注意,该方法会改变原数组 var arr = [];
var newlength = arr.push(1);    //newlength = 1
newlength = arr.push(2,'hh');   //newlength = 3
console.log(arr);               //[1,2,'hh']• pop()方法
用于删除数组的最后一个元素,并返回该元素。注意,该方 法会改变原数组 var arr = [];
arr.push(1,2,'hh');
var ch = arr.pop();     //ch = 'hh'
console.log(ch);
ch = arr.pop();         //ch = 2
console.log(ch);
ch = arr.pop();         //ch = 1
console.log(ch);• shift()方法
用于删除数组的第一个元素,并返回该元素。注意,该方 法会改变原数组 var arr = [1,2,'hh'];
var ch = arr.shift();   //ch = 1
console.log(ch);
ch = arr.shift();       //ch = 2
console.log(ch);
ch = arr.shift();       //ch = 'hh'
console.log(ch);• unshift()方法
用于在数组的第一个位置添加元素,并返回添加新元素后 的数组长度。注意,该方法会改变原数组 var arr = [];
var ch = arr.unshift('hh');     //ch = 1
console.log(ch);
ch = arr.unshift(2);            //ch = 2
console.log(ch);
ch = arr.unshift(1);            //ch = 3
console.log(ch);
console.log(arr);• join()方法
以指定参数作为分隔符,将所有数组成员连接为一个字符串 返回。如果不提供参数,默认用逗号分隔
注意:• 如果数组成员是 undefined 或 null 或空位,会被转成空字符串
• 数组的 join 配合字符串的 split 可以实现数组与字符串的互换
var arr = [1,2,'hh'];
console.log(arr.join());    //1,2,hh
console.log(arr.join(""));  //12hh
console.log(arr.join("|")); //1|2|hh
arr = [1,2,'hh',null,undefined];
console.log(arr.join());    //1,2,hh,,
console.log(arr.join('|')); //1|2|hh||
• concat()方法
用于多个数组的合并。它将新数组的成员,添加到原数组 成员的后部,然后返回一个新数组,原数组不变
除了数组作为参数, concat 也接受其他类型的值作为参数,添加到目 标数组尾部。
主要用于:上拉加载,合并数据 var arr1 = ['Hello'];
var arr2 = ['World!'];
var res = arr1.concat(arr2);
console.log(res);   //['Hello','World!']
console.log(arr1);  //['Hello']
console.log(arr2);  //['World!']
var arr = [1,2,3];
console.log(arr.concat(4,5,6,[7,8,9])); //[1,2,3,4,5,6,7,8,9]• reverser()方法
用于颠倒排列数组元素,返回改变后的数组。注意,该方 法将改变原数组 var arr = [1,2,3];
arr.reverse()
console.log(arr);   //[3,2,1]• indexOf()方法
返回给定元素在数组中第一次出现的位置,如果没有出 现则返回 -1
还可以接受第二个参数,表示搜索的开始位置 var arr = [1,2,3,2,3,3];
console.log(arr.indexOf(2)); //1
console.log(arr.indexOf(3)); //2
console.log(arr.indexOf(1,2));  //-1