数组


一.数组

数组的概念

就是一组数据,1>元素可以是任意类型 2>数组可以动态扩容

创建数组

1.1> var arr = new Array(10)  // 1个数值参数,表示数组长度
1.2> var arr = new Array(10, 1)  // 2个参数,表示元素10,1
2> var arr = []  // 字面量创建数组
3> var arr = Array(3)  // 同new Array(), 不推荐省略new

访问数组

arr[0]  // 表示数组第一个元素 通过下标取值 通过赋值修改元素

数组长度

arr.length  // 获取数组长度 可以通过设置length改变数组长度 超出长度的元素会被删除
arr.length-1 // 表示数组最后一个元素 因为数组下标从0开始

二.数组方法

方法名 方法参数 方法作用 方法返回值

数组增删改查

// 静态方法Array.isArray(arr) 判断是不是数组	返回bool 
Array.isArray(arr)

// push(arg)	接收任意数量参数	往数组末尾添加元素	返回数组新长度
arr.push()

// pop()	无参数	移除数组末尾1个元素,减少数组长度	返回移除的元素
arr.pop()

// unshift(arg) 接收任意数量参数	往数组开头添加元素	返回数组新长度
arr.unshift()

// shift()	无参数	移除数组开头1个元素,减少数组长度	返回移除的元素
arr.shift()

// splice() 2个参数	删除元素	返回被删的元素
//			3个参数,第2个是0	插入元素	返回空数组
//			3个参数,第2个是1+以上	替换元素	返回被替换的元素
arr.splice()

// indexOf()	2个参数,匹配元素,从哪个下标开始找	返回第一个匹配元素的下标	找到返回下标,找不到返回-1
arr.indexOf()

// delete(arr[i]) 数组[下标]	删除元素,不改变length,使用undefined占位	返回true
delete(arr[i])  // 不是数组方法

数组排序

// sort()	回调函数	默认按ASCII码升序只比较第1位	返回排序好的数组
arr.sort()
arr.sort(fn)

var arr = [1, 6, 3, 5]
arr.sort(function () {
    return a - b;	// 升序	b-a 降序
})

// reverse()	无参数	倒序排序数组	返回排序好的数组
arr.reverse()

生成副本 不修改原数组

// slice(i,)	1个下标	截取从下标开始到最后一个元素	返回截取的数组副本
// slice(i, j)	2个下标	截取从i到j-1的元素	返回截取的数组副本
arr.slice()

// concat(arg)	接收任意参数元素或数组	合并成一个数组副本	返回数组副本
arr.concat(arr1)

// arr.join(',')	默认用','隔开,也可以指定参数隔开	将数组元素合并成字符串	返回字符串
arr.join('-')

遍历数组

 // 只遍历有内容的元素
for (var i in arr) {
	arr[key];
}

// arr.forEach(fn)	回调函数	遍历,不能被关键字打断	没有返回值
arr.forEach(function(item, index, arr) {
    
})

// arr.map(fn)	回调函数	遍历	返回数组,根据回调函数(作为参数传递的函数)决定

// arr.sonme(fn)	回调函数	遍历	有1个成员满足条件返回true

// arr.every(fn)	回调函数	遍历	所有成员满足条件返回true

// arr.filter(fn)	回调函数	遍历	根据满足的条件,返回1个数组副本

// arr.reduce()	2个参数,1个回调函数,第2个初始值pre
arr.reduce(function(pre上一次调用返回的值, cur当前处理的元素, index, arr) {
    
}, pre)   // 如果没有pre会取arr[0]

原创文章,作者:254126420,如若转载,请注明出处:https://blog.ytso.com/268049.html

(0)
上一篇 2022年6月19日
下一篇 2022年6月19日

相关推荐

发表回复

登录后才能评论