JS学习笔记--第六期(二维数组与数组方法)

本文详细介绍了JavaScript中的二维数组,包括创建、访问、遍历、添加元素的方法。此外,还重点讲解了数组的位移操作如shift()和unshift(),以及排序方法如reverse()和sort(),特别是sort()的自定义排序规则,对于处理字符串形式的数字提供了实用示例。最后,通过实例展示了如何对多维数组进行自定义排序。
摘要由CSDN通过智能技术生成

二维数组

二维数组是内部元素为数组的数组,二维数组常用于当数据有一定的数据逻辑时,比如表示矩阵或者创建表格的时候。

二维数组的创建与访问

  • 创建

二维数组的创建与普通数组的创建并没有太大区别,只不过是将内部的元素替换成中括号包括的另一个未命名数组。或者将已创建好的数组赋值给二维数组。

示例:

var fruits = [["1", "Banana"], ["2", "Orange"]];
var element = ["3", "Apple"];
fruits[2] = element;
  • 访问

二维数组的访问方式也和普通数组没有太大区别,但是需要注意如果只输入一个下标的话访问的只会是二维数组中存的数组,需要用两个下标来访问二维数组中某数组的具体元素。

示例:

fruits[0] // ["1", "Banana"]
fruits[0][1] // "Banana"
  • 遍历

二维数组的遍历需要使用双重循环来实现,一层循环用于遍历二维数组中储存的数组,一层循环用于遍历二维数组中所存数组的具体元素。

示例:

for(var i in fruits){
	for(var j in fruits[i]){
		console.log(fruits[i][j]);
	}
}
  • 添加

二维数组同样可以使用数组中提供的各种方法,比如pop()和push()等方法(具体使用方法见上期)

示例:

var arr = [["1","Banana"],["2","Orange"]]
var element = ["3","Apple"]
arr.push(element)

数组方法

JS数组真正的力量隐藏在数组方法之中。这里主要介绍元素位移和数组排序两种。

位移元素

  • shift()
    删除首个数组元素并返回被删除的元素,同时把所有其他元素“位移”到更低的索引

示例:

var fruits = ["Banana", "Orange", "Apple", "Mango"];  
var x = fruits.shift();
//fruits的值是[“Orange”, “Apple” , “Mango”]; x的值是"Banana"
  • unshift()
    向数组的开头添加一个或更多元素并返回新的长度,同时把所有其他元素“位移”到更高的索引

示例:

var fruits = ["Orange", "Apple", "Mango"];  
var x = fruits.unshift("Banana");
//fruits的值是[“Banana”, “Orange”, “Apple” , “Mango”]; x的值是4

数组排序

JS的数组排序方法有很多种,除了使用系统自带的排序方法之外,还可以用户自己定义排序规则。

  • reverse()
    点到数组中元素的顺序,并返回数组。

示例:

var fruits = ["Banana", "Orange", "Apple", "Mango"];  
var x = fruits.reverse();
//x和fruits的值均为[“Mango”, “Apple”, “Orange”, “Banana”]
  • sort() 对数组的元素进行排序,并返回数组

示例:

var fruits = ["Banana", "Orange", "Apple", "Mango"];  
var x = fruits.sort();
//x和fruits的值均为[“Apple”, “Banana”, “Mango” , “Orange”]

sort()排序的规则如下:
对字符串排序,从左至右逐字比较(ASCII码顺序)

如[“a”, “A”, “1”], 按ASCII码顺序排列后为[“1”, “A”, “a”]。(数字>大写字母>小写字母)

如[“ab”, “ac”, “abc”], 排序后为[“ab”, “abc”, “ac”]。
(第一位相同比较第二位,b>c,因此ab和abc在ac之前;再比较ab与abc, ab没有第三位,因此排在abc之前)

对字符串形式的数字,排序规则不变,如[“10”, “5”, “18” , “50”], 排序后为[“10”, “18”, “5”, “50”]

如需要对字符串形式的数字进行排序,采用以下两种方式

统一格式,补足位数,如[“10”, “5”, “18” , “50”]中, 将“5”写为“05”

转换为数字,使用特殊方法对数字排序

  • 自定义排序(数字)
    自定义函数定义排序方法,在使用的时候嵌套进sort()中,该比较函数的名字可为任意,也可直接在sort()内写匿名函数作为参数

示例:

function sortby(a, b) {  
    return a - b //升序
}  
var arr = [10,5,8,50];
arr.sort(sortby)  //[5,8,10,50]

function sortby(a, b) {  
    return b - a //降序
}  
var arr = [10,5,8,50];
arr.sort(sortby)  //[50,10,8,5]

arr.sort(function (a, b) {  
    return a - b 
}) 
  • 自定义排序(多维数组)
    需要对多维数组中的值进行排序时,可借助比较函数sortby,根据比较函数的返回值为正或为负决定排列顺序。

示例:

var arr = [["Alice", "95"], ["Bob", "80"], ["Cart", "100"]];
function sortby(a,b){
    return a[1]-b[1]
}
arr.sort(sortby)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值