JS--数组基础

184 阅读3分钟

「这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战」。

数组基础

数组的定义

  • var arr=[1,2,3]
  • var arr=new Array(1,2,3) 这两种方法没有任何差别,但是第一种的性能略高,因为代码短

数组的属性

  • length既可以获取,又可以设置 设置length可用于快速清空数组,比如想要清空一个元素很多的数组,直接给length赋值为0即可.
var arr=[1,2,3,4,5,6,6,7,7,8,91,2,3,4,5,6,6,7,7,8,91,2,3,4,5,6,6,7,7,8,91,2,3,4,5,6,6,7,7,8,91,2,3,4,5,6,6,7,7,8,91,2,3,4,5,6,6,7,7,8,91,2,3,4,5,6,6,7,7,8,91,2,3,4,5,6,6,7,7,8,91,2,3,4,5,6,6,7,7,8,91,2,3,4,5,6,6,7,7,8,91,2,3,4,5,6,6,7,7,8]

arr.length=0;

数组使用原则

为避免混乱数组中应该只存一种类型的变量。

数组的添加和删除

添加:

  • push():尾部添加
  • unshift():头部添加

删除:

  • pop():尾部弹出
  • shift():头部弹出
//使用
var arr=[1,2,3,4]
arr.push();

数组的插入、删除

splice使用

  • 删除:splice(起点位置,长度)
var arr=[1,2,3,4,5,6,67]
arr.splice(2,3)

//结果:1,2,6,67
  • 插入:splice(起点位置,长度,插入元素)
var arr=[1,2,3,4,5,6,7,8]
arr.splice(2,0,'a')
//结果:1,2,3,a,4,5,6,7,8
//第二个参数长度值为0,所以对此数组不做元素删除,只进行元素插入
  • 替换
var arr=[1,2,3,4,5,6,7,8]
arr.splice(2,1,'a','un',999)

//结果:1,2,a,un,999,4,5,6,7,8
//第二个参数长度值为1,所以在该数组的第二个位置先删除一个元素,并用后续新添加的元素对该位置先有的元素进行替换

数组的排序、转换

排序

  • 排序一个字符串数组
var arr=['float','double','short','long','int'];
arr.sort();
alert(arr);

//弹出结果:double,float,int,long,short
  • 排序一个数字数组
var arr=[2,77,14,80,6,3,121];
arr.sort();
alert(arr);

//弹出结果:121,14,2,3,6,77,80

上述数字数组排序结果并不是我们所认为的从小到大或是从大到小的顺序,那是因为sort只识别字符串。
解决方法

var arr=[2,77,14,80,6,3,121];
arr.sort(function(n1,n2)
{
    if (n1<n2)
    {
        return -1;
    }
    else if (n1>n2)
    {
        return 1;
    }
    else
    {
        return 0;
    }
})
alert(arr)

//弹出结果:2,3,6,14,77,80,121

上述结果方法可简化为:

var arr=[2,77,14,80,6,3,121];
arr.sort(function(n1,n2)
{
    return n1-n2;//升序
    //return n2-n1; 降序
}
//弹出结果:2,3,6,14,77,80,121

转换

  • concat(数组2),连接两个数组
var a=[1,2,3]
var b=[7,8,9]
c=a.concat(b)
alert(c)

//弹出结果:1,2,3,7,8,9
  • join(分隔符),用分隔符组合数组元素,生成字符串(后续可应用于连接网址)
var arr=[1,2,3,4];
alert(arr.join('-'));

//弹出结果:1-2-3-4