数组——复杂类型数据,用 Array 表示
数组的创建(两种方法):
第一种方法:构造函数的方法定义
例如:var arr = new Array() // 定义了一个空数组
var arr = new Array(5) // 定义了一个数组,有五个变量,但是还没有进行赋值
var arr = new Array("a","b","c", ...) //定义了一个数组,里面有 "a","b","c", ... 这些变量
第二种方法:字面量的定义
例如:var arr = [ ] 等价于 var arr = new Array()
var arr = ["a","b","c", ...] 等价于 var arr = new Array("a","b","c", ...)
数组常见的方法(官方函数):
1、push() 功能:在数组的末尾添加一个或多个元素,并返回新数组的长度。
function fn1() { var scores = [1,2,3,4,5,6]; // push();给数组的末尾增加一个元素 scores.push(8); console.log(scores); // 结果为[1, 2, 3, 4, 5, 6, 8],length为7 } fn1()
2、pop() 功能:删除数组里最后一个元素,返回值就是被删除的元素。
function fn2() { var scores = [1,2,3,4,5,6] // pop();删除数组里最后一个元素 // 返回值是 6 console.log(scores.pop()) // 结果为[1, 2, 3, 4, 5] console.log(scores) } fn2()
3、unshift() 功能:在数组的开端添加一个或多个元素,并返回新数组的长度。
function fn3() { var scores = [1,2,3,4,5,6] // unshift();开端添加一个元素 // 返回值是 7 console.log(scores.unshift(8)) // 结果为[8, 1, 2, 3, 4, 5] console.log(scores) } fn3()
4、shift() 功能:删除数组里第一个元素,返回值就是被删除的元素。
function fn4() { var scores = [1,2,3,4,5,6] // pop();删除数组里第一个元素 // 返回值是 1 console.log(scores.shift()) // 结果为[2, 3, 4, 5, 6] console.log(scores) } fn4()
5、concat() 功能:可以给数组的末尾增加元素,但是cancat并不会改变原始的数组,concat的返回值是添加元素后的结果,既可以拼接数组,也可以拼接元素。
function fn5() { var scores = [1,2,3,4,5,6] // 结果为[1, 2, 3, 4, 5, 6, 7, 8] console.log(scores.concat(7,8)) // 结果为[1, 2, 3, 4, 5, 6] console.log(scores) } fn5()
6、reverse() 功能:把数组的元素的顺序进行颠倒。
function fn6() { var scores = [1,2,3,4,5,6] // 结果为[6, 5, 4, 3, 2, 1] console.log(scores.reverse()) // 结果为[6, 5, 4, 3, 2, 1] console.log(scores) } fn6()
7、slice() 功能:从数组里取出一部分元素(根据起始下标和结束下标),但不包括结束下标;不会改变原始数组。
function fn7() { var scores = [1,2,3,4,5,6] // 结果为[3, 4, 5],表示从下标 2 取到下标 5 ,但不包括下标 5 代表的数 console.log(scores.slice(2,5)) // 结果为[1, 2, 3, 4, 5, 6] console.log(scores) } fn7()
8、join() 功能:把数组中所有元素拼接成一个字符串,元素是通过指定的分隔符进行分割的,默认为逗号;不会改变原始数组。
function fn8() { var scores = [1,2,3,4,5,6] // 结果为1,2,3,4,5,6 console.log(scores.join()) // 结果为1-2-3-4-5-6 console.log(scores.join(‘-‘)) // 结果为[1, 2, 3, 4, 5, 6] console.log(scores) } fn8()
9、sort() 功能:只能排序字符串,不能排序数字(默认是按字符编码进行排序)
function fn9(){ var arr=[‘t‘,‘f‘,‘b‘,‘a‘,‘c‘]; arr.sort(); // 结果为["a", "b", "c", "f", "t"] console.log(arr); } fn9()
10、splice() 功能:既可以添加元素,也可以删除元素,关键是它可以在在指定下标删除,或者添加。
function fn10(){ var arr = [‘关羽‘,‘李逵‘,‘刘备‘,‘武松‘,‘宋江‘,‘张飞‘,‘卢本伟‘] //在下标2的位置插入了 William // 结果为["关羽", "李逵", "William", "刘备", "武松", "宋江", "张飞", "卢本伟"] arr.splice(2,0,"William"); console.log(arr); //把下标为3的元素删除掉了(刘备),在下标3的位置插入了 William他姐 // 结果为["关羽", "李逵", "William", "William他姐", "武松", "宋江", "张飞", "卢本伟"] arr.splice(3,1,"William他姐"); console.log(arr); //删除元素:从下标2开始删除2个,插入元素:在下标2的位置插入了 William他弟 // 结果为["关羽", "李逵", "William他弟", "武松", "宋江", "张飞", "卢本伟"] arr.splice(2,2,"William他弟"); console.log(arr); //删除元素:从下标2开始删除3个,插入元素:在下标2的位置插入了 William他妹 和 William他哥 // 结果为["关羽", "李逵", "William他妹", "William他哥", "宋江", "张飞", "卢本伟"] arr.splice(2,2,"William他妹","William他哥",); console.log(arr); } fn10()
补充:数组的length属性
用法:例 var arr = [12,23,34,45]
console.log(arr.length) // 结果为 4
下标(索引):console.log(arr[0]) // 结果为 12
console.log(arr[2]) //结果为 34
下标还可以是变量或者表达式:var i = 0 console.log(arr[i]) // 结果为 12
console.log(arr[i+2]) //结果为 34
感谢您的阅读,欢迎留下宝贵的意见!
原文地址:https://www.cnblogs.com/xiaoqi-zhou/p/12540275.html