js数组常见知识点

数组:可以保存一组数据

一、创建数组:

1、方式一:构造函数创建

//使用new关键字创建数组

var arr = new Array( );

//console.log(arr);  -> [ ]

var arr = new Array(1,2,'3',true);

//console.log(arr); -> [1,2,'3',true]

//如果只有一个参数,且参数类型为数字,则表示数组长度

var arr = new Array(3);  //表示创建一个元素数量为3的数组

console.log(arr); //[, ,]

console.log(arr[0]); //undefined

2、方式二:字面量方式创建(一般用这种方式创建)

var arr = [ ];

//console.log(arr); // [ ]

//console.log(typeof arr); //object

var arr = [ 2, 3, true, 'hello'];

console.log(arr); //[2, 3, true, 'hello'];

 

二、数组的下标

1、利用数组的下标可以获取和修改数组中的元素

var arr = [ 3, 4 ];

console.log( arr[0] ); //3 第一个元素,下标是0

console.log( arr[1] ); //4

console.log( arr[2] ); //undefined  -> 下标越界

//数组越界: 超出数组的下标范围

//数组的最后一个元素:  arr( arr.length-1] );

数组的属性: length  表示数组的长度,数组的元素个数,(可读可写);

var arr = [1,2,3]; ->  arr.length = 3;

//给数组末尾加一个元素: arr[ arr.length ] = 5;

2、数组的遍历:

var arr = [ 1,3,4,5,6 ];

for(var i=0; i<arr.length; i++){

  console.log( arr[i] );

}

// for-in 循环 :可以遍历数组和对象,多用来遍历对象;

var arr = [1,2,3,5,6];

for (var i in arr){

  //默认从头遍历到尾

  console.log( arr[ i ] ); 

}

var obj = { name:'张三', age:22}

for((val, key) in obj){

  console.log(val,key);

}

三、数组的方法:

var arr = [1, 3, 4];

1、push( );  给数组末尾添加元素  arr.push(6); (返回值是新的数组长度,一般不用)

2、pop( ); 删除数组的最后一个元素 arr.pop( ); (返回值是删除的元素,一般不用)

【栈方法: push( ) 和 pop( ) ,栈是一种数据结构(后进先出);】

3、shift( ); 在数组开头删除元素 arr.shift( );(返回值为删除的元素,一般不用)

4、unshift( ); 在数组开头添加元素 arr.unshift( );

【队列方法:push( );  shift( );】

5、reverse( ) :倒序(翻转), 会改变原素组

6、sort( ): 升序排序

  //给sort()传递一个函数参数(不是调用函数参数),为sort定制排序规则

  function fn(a, b){

    // a是数组前面的数,b是数组后面的数,如果前面的数大于后面的数,返回是否交换(返回正数表示交换)

    //if( a<b) { return 1;} //表示降序

    if( a > b) { return 1; } //表示升序

  }

  var arr = [11, 2, 3, 1, 20];

  arr.sort( fn );

  console.log( arr ) //[ 1,2,3,11,20 ]

 

7、concat( ): 拼接元素,不会改变元素组,会返回新数组(参数可以是元素,也可以是数组);

  var arr = [1,2,3];

  var arr2 = arr.concat(4,5);

  arr=[1,2,3]; arr2=[1,2,3,4,5];

 

 8、slice( ): 截取数组的一部分,不会改变原数组,会返回新数组

  一个参数(数值):表示下标(从当前下标截取到结束位置)

  两个参数(数值):表示下标(截取的是从第一个下标开始,到第二个下标结束,左闭右开)

 

9、splice( ):截取数组,会改变原数组(能对数组进行增、删、改)

  ①删除操作:必须是两个参数,且第二个参数不为零;  第一个参数表示开始下标,第二个参数是截取的长度

    var arr = [ 1, 2, 3, 4, 5, 6, 7, 8 ];

    var arr2 = arr.splice(2, 4);

    console.log( arr );  //[ 1, 2, 7, 8 ];

    console.log( arr2); //[ 3, 4, 5, 6 ];

  ②插入操作:需要至少三个参数,且第二个参数要为零; 第三个及以后的参数表示插入的内容

    var arr = [ 1, 2, 3, 4, 5, 6, 7, 8 ];

    arr.splice(2, 0, "hello", "world" );

    console.log( arr ); // [ 1, 2, hello, world, 3, 4, 5, 6, 7, 8 ]

  ③替换操作(修改):需要至少三个参数,且第二个参数不为零;

    var arr = [ 1, 2, 3, 4, 5, 6, 7, 8 ];

    arr.splice( 2, 3, "hello", "world" );

    console.log( arr ); // [ 1, 2, hello, world, 6, 7, 8 ]

  扩展:查询:循环遍历,通过下标;

  

  10、indexOf( ):查找数组中第一次出现指定元素的下标,如不存在返回-1 ( 查找数组中是否存在某个数 )

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

  var index = arr.indexOf(3);

  console.log(index) //2  数组中第一次出现数字3的下标

  

  11、lastIndexOf( ): 数组中最后一次出现的位置

 

  11、join( ): 将数组中的所有元素用指定的符号连起来,默认用逗号连接

  var arr = [ 1,2,3,4,5 ]

  var str = arr.join('-');

  console.log(str);  // 1-2-3-4-5

 

四、冒泡排序

  var arr = [6, 8, 2, 9, 1, 4, 7, 12, 3 ];

  for(var i=0; i<arr.length-1; i++){

    for( var j=0; j<arr.length-1-i; j++){

      if(arr[j] > arr[j+1]){  //从小到大排序

        var temp = arr[j];

        arr[ j ] = arr[ j+1 ];

        arr[ j+1 ] = temp;

      }

    }

  }

  console.log(arr);

 

转载于:https://www.cnblogs.com/shizhihong/p/9157153.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值