JavaScript-数组

JavaScript-数组,第1张

(七)数组 1. 基本概念 JS 数组都是动态创建的,可以自由增加数组长度,这点不同于 C/C++。一个 JS 数组内可以存放不同类型的元素,例如 ['abc', 1, true, undefined],这点也不同于 C/C++/Java。 2. 创建数组 2.1 数组字面量创建数组 创建空数组
let arr = [];
创建一般数组
let arr = [1, 2, 3];
2.2 new Array 创建数组对象

创建空数组

let arr = new Array();

创建指定长度的数组,有2个空数组元素

let arr1 = new Array(2);

创建放有指定元素的数组([2, 3])

let arr2 = new Array(2, 3);

一些示例

let arr_0 = [1, true, "aaa"];
let arr_1 = [];
let arr_2 = new Array(); // []
let arr_3 = new Array(2); // [empty × 2]
let arr_4 = new Array(2,); // [empty × 2]
let arr_5 = new Array(2, 3, 4); // [2, 3, 4]
3. 基本 *** 作

数组元素访问

let e = arr[index];

获取数组长度

let len = arr.length;

数组遍历
方式一:

for (let i = 0; i < arr.length; i++) {
    console.log(arr[i]);
}

方式二:

for (const i in arr) {
    console.log(arr[i]);
}

数组逆转

// 反转数组
function reverse(arr) {
    let res = [];
    for (let i = arr.length - 1; i >= 0; i--) {
        res[res.length] = arr[i];
    }
    return res;
}
console.log(reverse([1, 2, 3, 4, 0])); // [0, 4, 3, 2, 1]
4. 检测一个值是否为数组 4.1 instanceof
function isArray(test) {
    if (test instanceof Array) return true;
    return false;
}
console.log(isArray([1, 2])); // true
console.log(isArray(1)); // false
4.2 Array.isArray()

Array.isArray() 方法用于检测一个值是否为数组。

5. 添加删除数组元素的方法
方法名说明返回值
push(arg1,...)末尾添加一个或多个元素返回新的长度
pop()删除数组最后一个元素,数组长度减 1,无参数,修改了原数组返回所删除元素的值
unshift()向数组的开头添加一个或多个元素,修改了原数组返回新的长度
shift()删除数组的第一个元素,数组长度减 1,无参数,修改了原数组返回第一个元素的值
6. 数组排序
方法名说明是否修改原数组
reverse()颠倒数组中元素顺序,无参数会改变原数组,返回新数组
sort()对数组的元素进行排序会改变原数组,返回新数组

sort 方法对数组进行原地排序,但是默认按照字典序排序。需要传入一个比较函数 cmp(a, b),然后得到我们需要的排序效果。

let arr = [1, 4, 17, 12, 9];

arr.sort();
console.log(arr); // [ 1, 12, 17, 4, 9 ]

let cmp = (a, b) => a - b;

arr.sort(cmp);
console.log(arr); // [ 1, 4, 9, 12, 17 ]

其中,let cmp = (a, b) => a - b; 为升序,b - a 为降序。

7. 数组索引方法
方法名说明返回值
indexOf()数组中查找指定元素的 第一个索引若存在则返回索引号,否则返回 -1
latsIndexOf()查找指定元素在数组中的 最后一个的索引若存在则返回索引号,否则返回 -1

indexOf 前面开始查找,lastIndexOf 从后面开始查找,但索引都是从前往后由 0 算起。

let arr = ['red', 'green', 'blue', 'pink', 'blue'];

console.log(arr.indexOf('blue')); // 2
console.log(arr.lastIndexOf('blue')); // 4
console.log(arr.indexOf('yellow')); // -1
8. 数组去重
// 数组去重
function unique(arr) {
    let res = [];
    for (let i = 0; i < arr.length; i++) {
        if (res.indexOf(arr[i]) === -1) {
            res.push(arr[i]);
        }
    }
    return res;
}

console.log(unique([ 2, 3, 3, 4, 5, 5 ])); // [ 2, 3, 4, 5 ]
9. 数组与字符串互转 9.1 数组转换为字符串
方法名说明返回值是否改变原数组
toString()将数组转换成字符串,逗号分隔每一个返回一个字符串不改变
join('分隔符')把数组中的所有元素转换为一个字符串,以指定符号分割返回一个字符串不改变

示例

let a = ['a', 'b', 'c', 'd', 'e'];

console.log(a.toString());  // a,b,c,d,e
console.log(a.join('')); // abcde
console.log(a.join('-')); // a-b-c-d-e
console.log(a); // [ 'a', 'b', 'c', 'd', 'e' ]
9.2 字符串转换为数组

使用 split() 方法。

let str = 'blue-green-pink-red';
let res = str.split('-');
console.log(res); // [ 'blue', 'green', 'pink', 'red' ]
10. 数组方法 splice

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1321073.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-11
下一篇 2022-06-11

发表评论

登录后才能评论

评论列表(0条)

保存