一、数组
1、创建数组的方式
a、方法一:利用 new 创建数组
var arr = new Array()
b、方法二:利用数组字面量创建数组
var 数组名 = [‘小白’,‘小黑’,‘大黄’,‘瑞奇’];
2、数组的length属性可以被修改:
- 如果设置的length属性值大于数组的元素个数,则会在数组末尾出现空白元素;
- 如果设置的length属性值小于数组的元素个数,则会把超过该值的数组元素删除
var arr5 = [ "red",'blue','green','white']
//清空数组
arr5.length = 0
console.log(arr5)
//修改长度. 但是里面没有内容,是空的. 强行获取,或得到undefined
arr5.length = 10
console.log(arr5)
3、数组新增、修改、删除、查找元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var arr = ['香蕉','苹果','梨','桃子','西瓜']
//查找元素数组中的第二个元素
console.log(arr[1]) //苹果
//新增一个元素
//方法一:原始方法
// arr[arr.length] = '荔枝'
// console.log(arr) // ["香蕉", "苹果", "梨", "桃子", "西瓜", "荔枝"]
//方法二:push 推 向数组尾部添加一个或多个元素. 追加
//1.会修改原数组
//2.返回的是数组新增后的长度
// var result = arr.push('荔枝')
// console.log(result) //6
// console.log(arr) // ["香蕉", "苹果", "梨", "桃子", "西瓜", "荔枝"]
//方法三: unshift 在数组头部添加一个或多个元素
//会修改原数组,也返回新长度
var result = arr.unshift('荔枝')
console.log( arr )// ["荔枝", "香蕉", "苹果", "梨", "桃子", "西瓜"]
console.log( result ) //6
//修改数组中第三个元素的值为’芒果‘
arr[2] = '芒果'
console.log(arr) //["香蕉", "苹果", "芒果", "桃子", "西瓜", "荔枝"]
//删除数组中的最后一个元素
//方法一:
//pop 弹出 删除数组的最后一个元素
//会修改原数组,返回被删除的元素
var result = arr.pop()
console.log(result) //西瓜
console.log(arr) //[“荔枝","香蕉", "苹果", "芒果", "桃子"]
//方法二:
//shift 在数组头部删除一个元素
//会修改原数组,返回被删除的元素
// var result = arr.shift()
// console.log( result ) //荔枝
// console.log( arr ) //["苹果", "芒果", "桃子", "西瓜", "荔枝"]
</script>
</body>
</html>
4、判断是否为数组的方式
a、instanceof 运算符
//instanceof 可以判断一个对象是否是某个构造函数的实例
var arr = [1, 23];
var obj = {};
console.log(arr instanceof Array); // true
console.log(obj instanceof Array); // false
b、Array.isArray()
//Array.isArray()用于判断一个对象是否为数组,isArray() 是 HTML5 中提供的方法
var arr = [1, 23];
var obj = {};
console.log(Array.isArray(arr)); // true
console.log(Array.isArray(obj)); // false
5、数组排序
//如果是数字,则排序时,需要使用函数
var arr = [ 2,6,9,15,4,22,17 ]
//arr.sort( function (a,b) { return a-b } ) //升序
arr.sort( function (a,b) { return b-a } ) //降序
console.log( arr )
6、查找数组元素
// indexOf(查找的元素,从哪个位置开始查找) 查找元素在数组中的下标,有则返回下标,无返回-1
// 一般用于判断数组中是否有某个元素 index != -1
// var arr = [4,5,6,7]
// console.log( arr.indexOf(5) ) // 1
// console.log( arr.indexOf(9) ) //-1
// indexOf(查找的元素,从哪个位置开始查找)
// var arr = [4,5,6,7,5]
// console.log( arr.indexOf(5,3) ) //4
//lastIndexOf 从后往前找元素,找到了就返回下标,找不到返回-1
var arr = [4,5,6,7,5]
console.log( arr.lastIndexOf(5) ) //4 这个下标依然从0开始计数
7、数组去重
var arr = [1, 1, 2, 4, 2, 2, 3, 3, 4]
//逻辑1:遍历这个数组,如果找到相同的元素,删除. 需要使用双重循环
//逻辑2:新建一个空数组. 遍历原数组,如果这个元素不在新数组中,则加入.如果在,就不加. 只需要一次循环
function unique(arr) {
var newArr = []
for (var element of arr) //遍历数组
{
if (newArr.indexOf(element) === -1) //如果这个元素,不在新数组中
{
newArr.push(element) //则添加
}
}
return newArr //返回新数组
}
console.log(unique(arr))