javaScript快速入门之数组

数组


数组(Array):一个对象

  • 用来存储数据

  • 数组使用数字作为索引操作元素

  • 索引(index):从0开始的就是索引

  • 存储性能好

  • // 创建数组对象
    var arr = new Array();
    // 添加元素
    arr[0] = 10;  // 向索引为0添加10
    arr[1] = 20;
    arr[10] = 100;
    
    console.log(arr[1]); //10
    console.log(arr[100]); // undefined
    
    // 获取数组长度
    // console.log(arr.length); // 2
    // 对于非连续的数组,使用length会获取数组的最大索引+1
    console.log(arr.length); // 11
    console.log(arr); // 0,1,,,,,,,,10; 
    //尽量不要创建非连续的数组
    
    // 修改数组长度
    var arr = new Array();
    // 添加元素
    arr[0] = 10;  // 向索引为0添加10
    arr[1] = 20;
    arr.length = 10;  // 相当于在内存中先开辟空间
    console.log(arr); // 如果修改后的length大于,就会空出来
    // 小于只打印修改的长度
    
    // 向数组的最后一个位置添加元素
    arr[arr.length] = 60; // python  list.append(60)
    
    
    

数组字面量

// 使用字面量创建数组
var arr = [];

// 使用字面量创建数组时,可以在创建时指定数组中的元素
var arr = [1,2,3,4,5,6];
console.log(arr[0]); // 1


// 使用构造函数创建数组
var arr2 = new Array(10,20,30);

arr[10]:创建一个只有10的数组
arr2[10]:创建了一个长度为10的数组

// 数组中可以放任意类型的数据类型
arr = ['hello',2,true,null,undefined];
// 放入对象
var obj = {name:'in'};
arr[arr.length] = obj;
//放入函数
obj1 = [function(){alert('hello array')}];
arr[arr.length] = obj1;
arr[0](); // 调用函数
// 数组中可以放数组
arr = [[1,2],[2,3]];


数组的方法

push

  • 向数组的末尾添加一个或多个元素,并返回数组的新的长度
  • 可以将要添加的元素作为方法的参数传递
arr = ['hello','ki'];
arr.push('wha','asd','fr'); // 同时添加三个元素
var res = arr.push('wha','asd','fr'); // 返回新数组的长度

pop

  • 删除数组的最后一个元素
arr.pop(); // 删除'fr'
var res = arr.pop(); // 返回被删除的元素

unshift

  • 向数组的开头添加或多个元素,并返回新的数组长度(原数组)
arr.unshift('ko'); // 往前面加 he python 的 insert(0,'ad');

shift

  • 删除数组第一个元素,并将被删除的元素作为返回值,返回

slice

  • 截取指定的元素,并将其封装到新数组中返回

  • var arr = ['a','b','c','d'];
    var res = arr.slice(0,2); // ['a','b','c']
    

    splice

    • 删除原数组中的指定元素(原数组)

    • var arr = ['a','b','c','d'];
      var res = arr.splice(0,2); // 将删除的元素返回 ['a','b','c']
      
    • 可以传递一些新的元素

    • var arr = ['a','b','c','d'];
      var res = arr.splice(0,1,'e','f');
      console.log(arr); // ['e','f','b','c','d']
      
    • 使用splice做数组的去重

    • var arr = [1,1,23,3,4,2,4,3];
      for(var i =0; i<arr.length;i++){
      	for(var j=i+1;j<arr.length;j++){
      		if(arr[i] == arr[j]){
      			arr.splice(j,1); // 从j开始删除一位
      			j--; // 再次比较这个位置
      		}
      	}
      }
      

concat

  • concat() 可以连接两个或多个数组,并将新的数组返回

  • var arr = ['a'] ;
    var arr1 = ['b'];
    var arr2 = ['c']
    var res = arr.concat(arr1,arr2,'d','e');
    

join

  • 可以将数组转换成一个字符串

  • var arr = [1,2];
    var res = arr.join(,); // 在join的参数中可以指定一个字符串作为一个参数,这个字符串讲会成为字符串的连接符
    

    reverse

    • 反转数组(修改原数组)

    • var arr = [1,2];
      arr.reverse(); 
      

sort

  • 可以用来对数组进行排序(影响原数组)

  • var arr = [1,2];
    arr.sort();  // 按照unicode编码进行排序
    
    arr.sort(function(a,b){
    	return 0; // 如果返回大于0 元素交换位置;等于0 元素不变;小于0,也不交换位置
    })
    
    arr.sort(function(a,b){
    	if(a > b){
    		return 1;
    	}else if(a < b){
    		return -1;
    	}else{
    		return 0;
    	}
    })
    
    //升序排列
    arr.sort(function(a,b){
    	return a-b;
    })
    
    // 降序排列
    arr.sort(function(a,b){
    	return b - a;
    })
    

数组的遍历

遍历:就是将数组中的东西统统取出

var arr = ['a','b','c','d','e'];
for(var i = 0;i < arr.length;i++){
	console.log(arr[i]);
}

forEach : 遍历数组 (这个方法支持ie8以上)

  • forEach() 需要一个函数作为参数

  • 由函数内部自动调用函数,我们称为,回调函数

  • var arr = ['a','b','c','d','e']; 
    arr.forEach(function(){
    	console.log('hello')
    })
    
    // 数组中有几个元素就执行几次,每次执行,浏览器都会将遍历到的元素以实参的形式传递进来,我们可以定义形参,来读取这些内容
    // 浏览器会在回调函数中传递三个数
    var arr = ['a','b','c','d','e']; 
    arr.forEach(function(a,b,c){ // a 就是遍历的值 b 索引 c 正在遍历的数组
    	console.log(a)
    })
    

猜你喜欢

转载自blog.csdn.net/qq_42992704/article/details/105049892