欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数组的使用(1)

程序员文章站 2022-03-06 08:20:50
...

一、JavaScript中的数组定义

  1. 数组标准定义
    数组是一个存储元素的线性集合,元素通过索引来进行存取,这里的索引通常为数字,计算元素之间存储位置的偏移量。
  2. JavaScript中的数组定义
    JavaScript中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性,这些索引即使是数组,也会在内部被转换为字符串,因为JavaScript中对象的属性名必须是字符串。

二、数组的使用
1、创建数组

 var num = []; 
 var num1 = [1,2,3]; 
 var num2 = new Array();
 var num3 = new Array(5);
 var num4 = new Array(1,2,3,4,5); 

数组的使用(1)
2、判断一个对象是否是数组
方法:Array.isArray();

var num = 3;
var number = [1,2,3];
console.log(Array.isArray(num));  //false
console.log(Array.isArray(number));  //true

3、数组的读写

  • 常使用循环进行读写
  • 常使用数组的length属性来控制循环次数
  • JavaScript中的数组属于对象,长度可以任意增长,超出其创建时指定的长度

4、字符串与数组的转换

  • 数组转字符串:① join(’ ‘) 参数指定连接符 ② toString()
    toString不能指定链接符,只能是逗号
var number = [1,2,3];
console.log(number.join("-")); //1-2-3
console.log(number.toString()); //1,2,3
  • 字符串转为数组:split(’ ‘) 参数指定分割符
var str = "hello world";
console.log(str.split(" ")); //[ 'hello', 'world' ]

5、数组的浅拷贝与深拷贝

  • 浅拷贝:把一个数组赋值给另一个数组,只是为被赋值的数组增加了一个新的引用,当你通过原引用修改数组的值时,另外一个引用也会以感知到这个变化。
    新数组仍然指向原来的数组
var number = [1,2,3];
var number1 = number;
console.log(number1) //[ 1, 2, 3 ]
number[2] = 10;
console.log(number1)  //[ 1, 2, 10]
  • 深拷贝:将数组中的每个元素复制到新数组中,修改自己不会影响对方
var number = [1,2,3];
var number2 = [];
for(var i = 0;i<number.length;i++){
    number2[i] = number[i];
}

三、存取函数
1、查找元素

  • indexOf():查找传进来的参数是否存在于目标数组中,存在返回索引,不存在返回-1;
  • lastIndexOf():与indexOf功能一样,只不过是从后往前找

数组的使用(1)
切记:数组下标从0开始
2、数组合并
concat():合并多个数组为一个,不修改原数组,返回新数组
数组的使用(1)
3、 强大的splice

  • 截取一个新数组
    数组的使用(1)

  • 为数组添加元素
    数组的使用(1)

  • 为数组删除元素
    数组的使用(1)
    四、数组的增删

  • 添加元素

    ①push():将一个元素添加到数组末尾
    ②unshift():将一个元素添加到数组开头
    ③使用length属性向数组末尾添加一个元素:
            num[length] = 3;
    
  • 删除元素

    ①pop():从数组末尾移除一个元素
    ②shift():从数组开头移除一个元素
    
  • 从数组任意位置进行增删用之前的splice即可

五、为数组排序

  • reverse():将数组中的元素顺序进行翻转
var num = [1,2,3,4,5,6,7,8,9,0];
console.log(num.reverse()) //[ 0, 9, 8, 7, 6, 5, 4, 3, 2, 1 ]
  • sort() : 按照字典顺序进行排序(字符串类型使用最好)
var name = ["dawei","lilei","hanmeimei","zhangsan","wangwu","lisi","lilei"];
console.log(name.sort())
 //['dawei','hanmeimei','lilei','lilei','lisi','wangwu','zhangsan' ]

如果是数字使用sort()结果会不太令人满意
数组的使用(1)
这时要使用sort对数字进行排序,需要指定排序规则

var number = [1,23,2,4,14]
console.log(number.sort(F))  //[ 1, 2, 4, 14, 23 ]
function F(a,b){
    return a-b;
}

return b-a 即可改为从大到小排序