学习前端二十八天(数组方法)

2024-04-27 02:12

本文主要是介绍学习前端二十八天(数组方法),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、多维数组

 const matrix = [

            [1, 2, 3],  // 0

            [4, 5, 6],  // 1

            [7, 8, 9],// 2

        ]

 console.log(matrix[1][2]);   // 6

访问矩阵数组的每个值:

 for (let v1 of matrix) {

            for (let v2 of v1) {

                console.log(v2);

            }

        };  // 1,2,3,4,5,6,7,8,9

二、转为字符串

let matrix = [

            [1, 2, 3],  // 0

            [4, 5, 6],  // 1

            [7, 8, 9]   // 2

        ];

console.log(String(matrix));  // 1,2,3,4,5,6,7,8,9

console.log(matrix.toString());  // 1,2,3,4,5,6,7,8,9

三、删改数组

 // splice 删改数组

    const arr = ["a", "b", "c", "d", "e"];

    console.log(arr.splice(1, 2)); // ['b', 'c'],第一个参数为删除开始位置,第二个参数为删除元素个数

    arr.splice(3); // 没给第二个参数表示从开始位置往后全部删除      

    arr.splice(-3, 0); // 开始位置可以是负数,删除元素个数可以为0

// 删除并增加元素

      const arr2 = ["a", "b", "c", "d", "e"];

      arr2.splice(1, 3, "xc", "xl", "xy"); // 删除指定位置的几个元素后,增加新的元素

      arr2.splice(2, 0, "dwd", "d", "dw"); // 不删元素,在指定位置新增元素

// slice 截取数组,  不会修改数组

        const arr = ["a", "b", "c", "d", "e"];

        console.log(arr.slice(1, 3)); // 取起始位置,不取终点位置。前小后大

        arr.slice(-1); // 获取最后一个元素

// slice 重要应用:复制数组

        const arr2 = arr.slice(0);

        console.log(arr2 === arr);  // false

// concat 合并数组

        const arr1 = ["a", "b", "c"];

        const arr2 = ["a", "b", "c"];

        const arr3 = ["a", "b", "c"];

        const arr4 = ["a", "b", "c"];

        const arr5 = ["a", "b", "c"];

const arrb = arr1.concat(arr3, arr4);

const arr = arr1.concat(arr2, arr3, ["vv", "ff"]); // 数组拼接,代码顺序决定显示顺序

// 复制数组

    方法一: const arrNew = arr1.concat([]);

    方法二: const arrNew = [].concat(arr1);

四、遍历函数

// 数组的遍历 forEach

        const arr = ["a", "b", "c"];

        arr.forEach((i, j, ar) => console.log(j, i, ar) );

        // 第一个变量表示元素,第二个变量表示下标索引,依次赋值,第三个参数表示数组本身

        // 根据数组元素个数,运行个数次的函数

五、在数组中搜索

1、indexOf/lastIndexOf  判断某元素在数组中是否存在

const arr = ["a", "b", "c"];

console.log(arr.indexOf('b',1)); //  从头到尾,返回元素第一次出现的下标索引,第二个参数决定起始位置

console.log(arr.lastIndexOf('c',)); // 从尾到头 ,返回元素第一次出现的下标索引,第二参数决定起始位置

console.log(arr.lastIndexOf('xc',)); // -1 不存在该元素

2、 includes(" ",pow) 判断字符串中是否包含某字符或某字符串,返回布尔值,第二个参数决定搜索的起始位置

console.log(arr.includes('a', 1)); //false

3、find(function (v, i)  返回true时中断循环;find返回中断位置时的元素

4、findIndex(function (v, i) 返回true时中断循环;返回中断位置时的下标索引

findLastIndex 同findIndex 从尾至头循环

5、filter 在数组中搜索想要的元素(所有)

const arr = ["adad", "bdwadw", "cdwad", 'bwdwdw'];

// filter 返回true时,会选中这时的元素,并继续循环,将所有满足条件的元素集合成数组返回

        let r = arr.filter((v) => (v.startsWith("b")));

        console.log(r); //['bdwadw', 'bwdwdw']

六、转换数组

1、map 对数组的每个元素都调用函数,并返回结果数组,前后个数相等

        const arr = ["adad", "bdwadw", "cdwad", 'bwdwdw'];

        let newArr = arr.map((v) => v + "个"); // 给每个元素都加上“个”并返回到一个新数组中

        console.log(newArr);

2、sort 对数组(字母,数字)排序

const arr = [1, 20, 88, 655, 2, 33];

        // 升序排列

        console.log(arr.sort((a, b) => a > b ? 1 : -1));

        // 降序排序

        console.log(arr.sort((a, b) => a < b ? 1 : -1));

        // 针对数字简便写法,升序

        console.log(arr.sort((a, b) => a - b));

        // 针对数字简便写法,降序

        console.log(arr.sort((a, b) => b - a));

        // 对单词进行排序

        const newArr = ['css', 'js', 'vue', 'html'];

        newArr.sort((a, b) => a > b ? 1 : -1);

        console.log(newArr);

3、reverse 颠倒元素顺序

const newArr = ['css', 'js', 'vue', 'html'];

console.log(newArr.reverse());  // ['html', 'vue', 'js', 'css']

4、split 通过给定的分隔符 delim 将字符串分割成一个数组

        const str = "js,css,html,vue";

        const arr1 = str.split(","); // 通过“,”将字符串分割成一个数组

        const arr2 = str.split(''); // 空分隔符,将每个字符分割为一个数组

        const arr3 = str.split('s');// 作为分隔符的元素不会返回

        console.log(arr1); //['js', 'css', 'html', 'vue']

        console.log(arr2);//['j', 's', ',', 'c', 's', 's', ',', 'h', 't', 'm', 'l', ',', 'v', 'u', 'e']

        console.log(arr3);//['j', ',c', '', ',html,vue']

5、join 将数组转成字符串,可以自定义分隔符,分隔符会返回到字符串中

        const arr = ['js', 'css', 'html', 'vue'];

        let str1 = arr.join("s");

        let str2 = arr.join("");

        let str3 = arr.join();

        console.log(str1); // jsscssshtmlsvue

        console.log(str2); // jscsshtmlvue

        console.log(str3); // js,css,html,vue

6、reduce

        // 方法第二个参数作为sum的初始值,此时函数执行的次数为数组元素的个数

        // 方法第二个参数不存在,sum的初始值为回调函数的第一个元素,此时函数执行的次数为数组元素个数-1

        // 回调函数的返回值,会直接赋值给下一个函数的sum

        // reduce方法的返回值,为最后一次回调函数的返回值

        const arr = ["a", "b", "c", "d", "e"];

        const r = arr.reduce(function (sum, v, i) {

            console.log(sum, v, i);

            return sum + 1;

        }, 0)

       console.log(r);// 5

七、判断数组

 // Array.isArray 判断一个东西是否是数组

        alert(Array.isArray({})); // false

        alert(Array.isArray([])); // true

这篇关于学习前端二十八天(数组方法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/939270

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter