1、数组对象的创建
- 字面量方式
- new Array()
<script>
//创建数组的两种方式
//1.利用数组字面量
var arr = [1, 2, 3];
console.log(arr[0]);
//2.利用new Array()
var arr1 = new Array();//创建了一个空的数组
var arr2 = new Array(2);//创建了一个长度为2的空数组 2表示数组长度 里面有两个空的元素
var arr3 = new Array(2, 3);//等价于[2,3] 这样写表示 里面有2个数组元素 是2和3
</script>
2、检测是否为数组
- instanceof
- Array.isArray(参数)
<script>
//检测是否为数组
//1.instanceof 运算符 可以用来检测是否为数组
var arr = [];//数组
var obj = {};//对象
console.log(arr instanceof Array);
console.log(obj instanceof Array);
//2. Array.isArray(参数) H5 新增方法 ie9以上版本才支持
console.log(Array.isArray(arr));
console.log(Array.isArray(obj));
</script>
3、添加删除数组元素的方法
方法名 | 说明 | 返回值 |
---|---|---|
push(参数1…) | 末尾添加一个或多个元素,注意修改原数组 | 并返回新的长度 |
pop() | 删除数组的最后一个元素,把数组长度减1 无参数,修改原数组 | 返回它删除的元素的值 |
unshift(参数1…) | 向数组开头添加一个或多个元素,注意修改原数组 | 并返回新的长度 |
shift() | 删除数组的第一个元素,数组长度减1 无参数,修改原数组 | 返回第一个元素的值 |
<script>
//添加删除元素方法
//1. push() 在数组末尾 添加一个或多个数组元素 push 推
var arr = [1, 2, 3];
arr.push(4, 5, 6);
console.log(arr.push());//6
console.log(arr);
/*
注意:
push是可以给数组后面追加新的元素;
push() 参数直接写数组元素即可;
push完毕后,返回的结果是新数组的长度
原数组也会发生变化
*/
//2.unshift() 在数组开头 添加一个或多个数组元素
//arr.unshift('red', 'pink');
console.log(arr.unshift('red', 'pink'));
console.log(arr);
/*
注意:
unshift是可以给数组前面追加新的元素;
unshift() 参数直接写数组元素即可;
unshift完毕后,返回的结果是新数组的长度
原数组也会发生变化
*/
//3. pop() 删除数组的最后一个元素
arr.pop();
console.log(arr);
console.log(arr.pop());
/*
注意:
pop是可以删除数组的最后一个元素,一次只能删除一个元素;
pop 没有参数;
pop完毕后,返回的结果是删除的那个元素
原数组也会发生变化
*/
//4. shift() 删除数组的第一个元素
console.log(arr.shift());
console.log(arr);
/*
注意:
shift是可以删除数组的第一个元素,一次只能删除一个元素;
shift 没有参数;
shift完毕后,返回的结果是删除的那个元素
原数组也会发生变化
*/
</script>
4、筛选数组
<script>
//筛选数组
//把[1500,1200,2000,2100,1800]超过2000删除 剩余放到新数组里
var arr = [1500, 1200, 2000, 2100, 1800];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] < 2000) {
// newArr[newArr.length]=arr[i];
newArr.push(arr[i]);
}
}
console.log(newArr);
</script>
5、数组排序
<script>
//数组排序
//1.翻转数组
var arr = ['pink', 'red', 'blue']
console.log(arr.reverse());
//2.数组排序(冒泡排序)
var arr1 = [3, 4, 17, 1];
arr1.sort(function (a, b) {
// return a - b; //按照升序的顺序排列
return b - a;//按照降序顺序排列
})
console.log(arr1);
</script>
6、数组索引方法
方法名 | 说明 | 返回值 |
---|---|---|
indexOf() | 数组中查找给定元素的第一个索引 | 如果存在返回索引号,不存在,返回-1 |
lastIndexOf() | 在数组中的最后一个索引 | 如果存在返回索引号,不存在,返回-1 |
<script>
//返回数组索引方法 indexOf(数组元素)
//作用:返回该数组元素的索引号 从前面开始查找
//它之返回第一个满足条件的索引号
//它如果在该数组里找不到元素,返回-1
var arr = ['red', 'green', 'blue', 'blue'];
// var arr = ['red', 'green'];
console.log(arr.indexOf('blue'));
//返回数组索引方法 lastIndexOf(数组元素) 作用:返回该数组元素的索引号 从后面开始查找
console.log(arr.lastIndexOf('blue'));
</script>
7、数组去重(利用数组索引)
核心算法:遍历旧数组,拿旧数组去查询新数组,如果没有出现就添加进去,否则不添加。
<script>
//数组去重 利用 新数组.indexOf(数组元素) -1查不到 就加进去
var arr = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b']
function unique(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) == -1) {
newArr.push(arr[i]);
}
}
return newArr;
}
var demo = unique(arr);
console.log(demo);
</script>
8、数组转换为字符串
方法名 | 说明 | 返回值 |
---|---|---|
toString() | 把数组转换为字符串,逗号分隔 | 返回一个字符串 |
join(‘分隔符’) | 把数组转换为字符串 | 返回一个字符串 |
<script>
//数组转换为字符串
//1.toString() 将数组转换为字符串
var arr = [1, 2, 3];
console.log(arr.toString());
//2.join(分隔符) 可以在里面写上分隔符
var arr1 = ['green', 'blue', 'red'];
console.log(arr.join());//默认逗号分隔 1,2,3
console.log(arr.join('-'));//1-2-3
console.log(arr.join('&'));
</script>
总结
简单介绍了js数组对象中的一些内置方法。