1、使用 “at” 获取最后一个元素、//这是新增属性
如:arr.at(-1):获取最后一个数据
2、数组的操作方法
破坏性方法
①push:在数组的末尾添加一个元素或者多个元素,并返回数组的新长度
②unshift():在数组的开头添加一个元素或者多个元素,并返回数组的新长度
let arr = ['a', 'b', 'c']
arr.push('d')
console.log(arr);
console.log(arr.push());//返回值
arr.unshift('A')
console.log(arr);
console.log(arr.unshift());//返回值
③pop():删除数组的最后一个元素,返回值的被删除的元素
④shift():删除数组的第一个元素,返回值的被删除的元素
⑤splice(第一个开始删除的位置,删除的元素个数) :第二个参数不写表示从第一个参数下标开始删除后面的所有元素,返回值是被删除的元素
⑥sort():排序函数 sort( function(a,b){ return a-b})这是升序 b-a则是降序
非破坏性方法
①slice (截取的起始位置,截取的长度)截取数组片段,返回一个新截取的数组 不改变原数组,第一个参数不写那么则会一直截取到最后,两个参数都省略可以对数组进行浅拷贝
②concat():连接数组,返回一个新数组
③indexOf(元素,开始查询此元素的位置)获取数组中元素第一次出现的索引,并返回它的索引,没有返回-1
④lastIndexOf :和③ 相同 从后往前找
⑤join():将数组的元素连接成一个字符串,默认元素之间用逗号隔开,在小括号里面可以指定元素之间的符号 如join(@):这表示元素之间用@符号隔开
3、冒泡排序
每次将数组内最大的数排到数组最后的位置,
将上述操作完成数组的长度减1次(length-1)就是冒泡排序
<script>
let arr = [4, 8, 9, 1, 3, 4, 5, 2, 0]
for (let j = 0; j < arr.length - 1; j++) {//执行数组的长度次数,完成冒泡,循环length-1次
for (let i = 0; i < arr.length - j - 1; i++) {//,这里执行了一次将数组中最大的元素放到数组的最后面
if (arr[i] > arr[i + 1]) {
let temp
temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
}
}
}
console.log(arr);
</script>
4、数组去重
方法一
分别遍历两个数组,先遍历非空的那个数组,然后判断空数组中是否有跟当前非空数组中国相同的元素,不同则push这个元素到 之前的空数组中去
<script>
//两个数组;分别遍历两个数组,先遍历非空的那个数组,然后判断空数组中是否
有跟当前非空数组中国相同的元素,不同则push这个元素到之前的空数组中去
let arr = [1, 1, 2, 2, 3, 4, 5]
let newArr = []
for (let i = 0; i < arr.length; i++) {
let flag = true//设置一个开关
for (let j = 0; j < newArr.length; j++) {
if (arr[i] === newArr[j]) {
flag = false
break;
}
}//上面内部的for循环完之后才能拿到flag的值(也就是说只有循环完之后
才能知道是否有相同的元素),所以下面的判断条件要写再循环的外面
if (flag) {
newArr.push(arr[i])
}
}
console.log(newArr);
</script>
方法二
indexOf():判断数组里面是否有某个元素,并返回它的索引,没有返回-1
const arr = [1, 2, 3, 4, 5, 1, 2, 3]
const newArr = []
for (let i = 0; i < arr.length; i++){
// arr[i]
// 遍历旧的数组, 如果在新数组里面, 没有这个元素, 就把这个元素放到新数组里面
if (newArr.indexOf(arr[i]) === -1 ){
newArr.push(arr[i])
}
}
console.log(newArr)
方法三
includes ()判断数组里面是否包含某个元素 ,并返回true 或者false
const arr = [1, 2, 3, 4, 5, 1, 2, 3]
const newArr = []
for (let i = 0; i < arr.length; i++){
if (!newArr.includes(arr[i])) {
newArr.push(arr[i])
}
}
console.log(newArr)
方法四
const res = [...new Set([1,2,3,3,2,1])]
console.log(res)
或者是
const res2 = Array.from(new Set([1,2,3,3,2,1]))
伪数组: 有length 有索引;但是没有数组的方法 pop ,push
Array.from() 把伪数组,转换为真数组