3:Array构造函数

知识梳理

//1 判断数组  instanceof  Array.isArray(arr);
//2 添加元素 .unshift() .push() 
//3 删除元素 .shift() .pop()
//4 查找索引  arr.indexOf()  arr.lastIndexOf()
//5 数组排序  sort
//6 数组转字符串 arr.toString() arr.join('|')  

一 基本属性

1)参数说明

var arr = new Array(2);//创建了一个长度为2的空数组
var arr = new Array('2');//创建了一个元素为字符串2的数组
var arr = new Array(2,3);//创建了包含2个元素的数组

2)异常

当size为负数 或者大于最大值时 会抛出RangeError异常
var arr = new Array(2); //Uncaught RangeError: Invalid array length
未捕获 范围错误 无效 数组 长度

3)直接量语法

var arr = [];

4)属性

//只有一个length属性

二  常用方法 

1)判断数组

方法一 instanceof 运算符检测
var arr = new Array(); //创建一个空数组
console.log(arr instanceof Array ); //返回布尔值
方法二 
Array.isArray(arr_name);

2)添加元素

var arr = [1,2,3,4];
var res1 = arr.unshift(0,'李白');//向数组开头压入一个或多个元素
var res2 = arr.push(5,'杜甫');//向数组尾部压入一个或多个元素

console.log(res1);//返回值:返回新数组的长度
console.log(res2);//返回值:返回新数组的长度
console.log(arr);// [0, "李白", 1, 2, 3, 4, 5, "杜甫"]

3)删除元素

var arr = [1,2,3,4];
var res = arr.pop();//1 删除数组末尾的最后一个元素
var res1 = arr.shift();//2 删除数组开头的第一个元素

console.log(res);//4 返回值:被删除的元素
console.log(res1);//1 返回值:被删除的元素
console.log(arr);//[2,3] 

4)查找元素的索引号

//1 indexOf()  从前往后查找
var arr = ['李白','杜甫','白居易','白居易'];
console.log(arr.indexOf('白居易')); //返回 2  如果存在 返回索引号
console.log(arr.indexOf('李商隐')); //返回-1  如果不存在 返回-1

//2 lastIndexOf() 从后往前查找 
console.log(arr.lastIndexOf('白居易'));//如果存在 返回索引号 
console.log(arr.lastIndexOf('李商隐'));//如果不存在 返回-1 

5)数组翻转

var arr = [1,2,3];
arr.reverse();
console.log(arr); //[3, 2, 1]

6)数组排序 sort()

//冒泡排序
var arr1 = [10,9,22,34,35,45,41];
//arr1.sort();//做冒泡有一些问题 它是基于 UTF-16代码

//做一些改进 实现冒泡算法 [ 里面的函数写法是固定的 ]
arr1.sort(function (a,b) {
    return b - a;//[a-b是从小到大] [b-a从大大小]
})
console.log(arr1);

7)将数组装换为字符串

//方法1 toString()
//方法2 join('分隔符号')
var arr = [1,2,3];
console.log(arr.toString());//转换为字符串
console.log(arr.join('|'));//可以用其他符号分割,默认是逗号

三 练习案例

1)把工资大于2000的删除

var arr = [1500,2200,3200,1400];
var newArr = [];
for (var i = 0;i < arr.length; i++) {
    if (arr[i] < 2000) {
        newArr.push(arr[i]);
    }
}
console.log(arr);
console.log(newArr); 
//用到的知识点:添加数组元素

2)数组去重 [ 重点案例 ] 

//目标:把旧数组中不重复的元素选出来,重复的只保留一个 存放到新数组中
//核心思路:我们遍历旧数组,拿旧数组的元素值去新数组中匹配 如果不存在就push到新数组中
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 res = unique(['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b']);
console.log(res);

3)求某个值出现的次数和位置 [ 重点案例 ]

//举一反三  求数组中 red 出现的位置和次数    
var arr = ['red','blue','green','pink','red'];
var index = arr.indexOf('red');
var num = 0;
while (index !== -1) {
    console.log(index);
    num++;
    index = arr.indexOf('red',index + 1);
}
console.log('red出现了:' + num + '');

 

posted @ 2021-02-17 16:16  棉花糖88  阅读(248)  评论(0编辑  收藏  举报