[JavaScript]内置对象Array初识

Array 数组对象是构造函数,需要用 new 实例化后使用。

 

创建数组的两种方式:

1. 字面量

var arr1 = ['1', '2', '3', '4', '5'];

 

2. new 关键字

var arr2 = new Array(1, 2, 3, 4, 5);       // [1, 2, 3, 4, 5]
var arr3 = new Array(5);                   // 创建了一个length为5,元素均为undefined的数组

 

监测是否为数组

1. 数组名 instanceof Array
        console.log(arr3 instanceof Array);      // true
        console.log('22' instanceof Array);      // false

2. Array.isArray( 数组名 );

        console.log(Array.isArray(arr2));               // true
        console.log(Array.isArray('1, 2, 4, 8'));       // false

 

 元素的添加和删除

操作 函数名 返回值
在末尾添加新的数组元素(一个或多个) .push(); 返回新的长度
删除最后一个元素 .pop(); 返回删除元素的值
在开头添加新的数组元素(一个或多个) .unshift(); 返回新的长度
删除第一个元素 .shift(); 返回删除元素的值
 
一种在原数组的末尾添加元素的思路:arr[arr.length] = 元素
// 将大于10的元素存入另一个数组
var arr4 = [12, 5, 1, 52, 2, 3, 6, 8, 10, 21, 33];
var arr4New = [];
for (var i = 0; i < arr4.length; i++) {
    if (arr4[i] > 10) {
        arr4New[arr4New.length] = arr4[i];
    }
}
console.log(arr4New);     //[12, 52, 21, 33]

 

 翻转原数组,返回翻转后的数组

.reverse();
 

冒泡排序(升序)

.sort();
只能对数字型同等位数进行排序,它的排序是对字符串型排序才有效果的。
var arr1 = [11, 2, 66, 5, 51, 20, 0, 77];
arr1.sort();
console.log(arr1);                                  // 0, 11, 2, 20, 5, 51, 66, 77

var arr2 = ['blue', 'about', 'pink', 'paper', 'before', 'zoom'];
arr2.sort();
console.log(arr2);               // "about", "before", "blue", "paper", "pink", "zoom"
如果想用sort();对不同位数的数字型进行排序。参照以下固定写法:
(原理:比较器。具体参看MDN文档)
arr1.sort(function (a, b) {
    return a - b;                  // 升序
    // return b - a;               // 降序
})
console.log(arr1);                // 0, 2, 5, 11, 20, 51, 66, 77

 

获取数组索引

.indexOf( 元素名 );     返回元素第一次出现的索引。如果不存在,返回-1。

.lastIndexOf( 元素名 );     返回元素最后一次出现的索引。如果不存在,返回-1。

.indexOf( 元素名, 起始索引));            第一个参数是查找的元素,第二个参数表示从第n个索引开始找。
 
 

重点案例:数组去重

// 思路:在新数组中查找原来数组的各个元素,如果索引为-1,则在新数组中添加元素。
function unique(arr) {
    var newArr = [];
    for (var i = 0; i < arr.length; i++) {
        if (newArr.indexOf(arr[i]) === -1) {
            newArr.push(arr[i]);
        } else {
            continue;
        }
    }
    return newArr;
}

 

数组转字符串

1. toString();               元素之间有逗号分隔。
2. join('分隔符');         元素之间的分隔符可以改成任意的符号,不输入分割符时默认是逗号。
 
 

数组的连接和拆分

.concat( 数组名 );                 连接两个或多个数组,返回一个新数组,不影响原数组。
.slice(begin, end);                返回一个被截取的新数组
.splice(begin, length);          返回被删除片段后的原数组!
posted @ 2021-07-22 11:33  夕苜19  阅读(53)  评论(0编辑  收藏  举报