11js数组

【一】数组基本须知

1.和python中的列表很像
2.语法:
    var arr = []
    var arr = new Array()
3.数组获取元素
    索引取值
    如果索引超过最大值 得到的结果是 undefined
4.数组的长度
    arr.length
         可以通过修改数组的length可以改变数组的长度,拉长了数组获取后续项的值是undefined
        如果缩短数组的长度,后续的项数会被删除,且不可逆

【二】数组常用方法

方法名称功能描述返回值类型
forEach/for...of遍历数组(forEach处理每个元素,for...of可读取元素并自动解包)
concat合并数组新数组
join将数组转化为字符串字符串
pop删除数组最后一个元素删除的数据(即数组最后一个元素)
shift删除数组第一个元素删除的数据(即数组第一个元素)
unshift在数组开头插入元素新数组长度
push在数组末尾添加元素新数组长度
reverse翻转数组顺序翻转后的数组
sort对数组元素排序排序后的数组
slice截取数组部分元素新数组
splice插入、删除或替换数组元素被删除或替换的元素
toString数组转为字符串字符串
valueOf获取数组原始值原始值
indexOf查找指定元素在数组中的位置元素索引(若不存在则返回 -1)
lastIndexOf查找指定元素在数组中最后一次出现的位置元素索引
map应用函数映射数组元素新数组
filter根据条件筛选数组元素新数组
every判断数组所有元素是否都满足条件布尔值
some判断数组是否有元素满足条件布尔值
reduce按规则累积数组元素生成单个返回值单一返回值
rightReduce类似于reduce,但从数组末尾开始累积单一返回值
(1)forEach 和 for...of
1.数组.forEach( 回调函数: (值, 索引, 原数组) => 返回值)
​
遍历数组(forEach处理每个元素,for...of可读取元素并自动解包)
let arr=["a","b","c","d","e"];
arr.forEach((v,i,list)=>{
    console.log(v);
    console.log(i);
    console.log(list);
})
​
2.// for...of 示例--->类似python的for i in arr
for(i of arr){
    console.log(i)
}
(2)concat合并
arr=["a","b","c","d","e"];
arr.concat("s","c")
console.log(arr)//[ 'a', 'b', 'c', 'd', 'e' ]
影响原数组
(3)join将数组转化为字符串
arr=["a","b","c","d","e"];
arr.toString()
console.log(arr)//[ 'a', 'b', 'c', 'd', 'e' ]
(4)pop 和 shift
● pop删除数组最后一个元素
● shift删除数组第一个元素
arr=["a","b","c","d","e"];
​
// pop 示例
console.log(arr.pop())  - 原数组已变e
​
// shift 示例
console.log(arr.shift())// 原数组已变a
(5)unshift在数组开头插入元素
arr=["a","b","c","d","e"];
arr.unshift("k")
console.log(arr)//[ 'k', 'b', 'c', 'd', 'e' ]
(6)push在数组末尾添加元素
arr=["a","b","c","d","e"];
arr.push("qqq")
console.log(arr)//[ 'a', 'b', 'c', 'd', 'e', 'qqq' ]
(7)reverse翻转数组顺序
arr.reverse()
console.log(arr)//[ 'e', 'd', 'c', 'b', 'a' ]
(8)sort对数组元素排序升序
arr.sort((a,b)=>2)
console.log(arr) // 自定义排序规则,升序排列[ 'a', 'b', 'c', 'd', 'e' ]
(9)slice截取数组部分元素(顾头不顾尾)
arr.slice(1,2)
console.log(arr.slice(1,2))//[ 'b' ]
console.log(arr)//[ 'a', 'b', 'c', 'd', 'e' ]
(10)splice插入、删除或替换数组元素
let arr = ['a', 'b', 'c', 'd', 'e'];
截取索引1-2顾头不顾尾,将x,y替换到被截取的位置
arr.splice(1,2,"x","y")
console.log(arr)//[ 'a', 'x', 'y', 'd', 'e' ]

//截取多了有多少截取多少不报错
arr.splice(0,6)
console.log(arr)//[]
(11)toString数组转为字符串
let arr = [1, 2, 3];
let str = arr.toString(); // "1,2,3"
console.log(str);
(12)valueOf获取数组原始值
let arr = [1, 2, 3];
let val = arr.valueOf(); // [1, 2, 3]
console.log(val);
(13)indexOf查找指定元素在第一次出现在数组中的位置
let arr = ['a', 'b', 'c', 'd', 'a'];
let index = arr.indexOf('a'); // 0
console.log(index);//有则打印出索引,无则-1
(14)lastIndexOf查找指定元素在数组中最后一次出现的位置
let arr = ['a', 'b', 'c', 'a', 'b'];
let lastIndex = arr.lastIndexOf('a'); // 4
console.log(lastIndex);
(15)map应用函数映射数组元素
arr=[1,2,3,4,5]
console.log(arr.map((num,i)=>{
    console.log(num*i)
}))
(16)filter根据条件筛选数组元素
arr=[1,2,3,4,5]
a=arr.filter((num)=>num%2===0)
console.log(a) // [2, 4]
(17)every判断数组所有元素是否都满足条件
arr=[1,2,3,4,null]
a=arr.every((num)=>num)
console.log(a)
(18)some判断数组是否有元素满足条件
arr=[1,2,3,4,null]
a=arr.some((num)=>num)
console.log(a)//true
(19)reduce按规则累积数组元素生成单个返回值
let arr = [1, 2, 3, 4, 5];
let sum = arr.reduce((total, num) => total + num, 0); // 15
console.log(sum);
(20)rightReduce类似于reduce,但从数组末尾开始累积
let arr = [1, 2, 3, 4, 5];
let reversedSum = arr.reduceRight((total, num) => total + num, 0); // 15 (等于sum,因为是从后向前累加)
console.log(reversedSum);
(21)统计数组长度
var arr= [11,22,33,44,55,66];
// undefined

arr
// (6) [11, 22, 33, 44, 55, 66]

// (1)统计数组的个数
arr.length
// 6
以下是JavaScript中数组的一些变更方法:

push(): 向数组的末尾添加一个或多个元素,并返回新的长度。
pop(): 删除并返回数组的最后一个元素。
shift(): 删除并返回数组的第一个元素。
unshift(): 向数组的开头添加一个或多个元素,并返回新的长度。
splice(): 通过删除或替换现有元素或者添加新元素来改变一个数组的内容。
sort(): 对数组的元素进行排序,并返回数组。排序不一定是稳定的。默认排序顺序是根据字符串Unicode码点。
reverse(): 颠倒数组中元素的顺序,并返回数组。
fill(): 用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
copyWithin(): 在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有数据),然后返回当前数组。
以下是非变更方法:

slice(): 返回一个新的数组对象,这一对象是一个由开始到结束(不包括结束)选择的、由原数组的浅拷贝构成。原始数组不会被改变。
concat(): 用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
join(): 将一个数组(或一个类数组对象)的所有元素都转化成一个字符串并连接在一起。
map(): 创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
filter(): 创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
reduce(): 对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个输出值。
some() 和 every(): 这两个方法都是对数组中的每一项运行给定函数,如果 some() 方法中的函数对任一项返回 true,则整个表达式返回 true,且剩余的元素不会再执行检测。如果 every() 方法中的函数对所有元素都返回 true,则整个表达式返回 true,否则返回 false。
find() 和 findIndex(): 这两个方法都返回数组中满足提供的测试函数的第一个元素的值或索引。如果没有符合条件的元素,则返回 undefined 或 -1。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值