js数组篇

news2024/10/5 19:09:30

数组定义

var arr1=new Array(33,44,55,66);
var arr2=['A','B','C','D'];
var arr3=new Array(4);

数组常用方法 

splice()方法用于替换数组中的指定项

splice(3,2,'X','Y','Z'):从下标为3的项开始,连续替换2项 ,插入XYZ

var arr=['A','B','C','D','E','F','G'];
arr.splice(3,2,'X','Y','Z');
console.log(arr);    //['A','B','C','X','Y','Z','F','G']

splice(2,0,'X','Y','Z'):从下标为2的项开始,插入新项 ,插入XYZ

var arr=['A','B','C','D'];
arr.splice(3,0,'X','Y','Z');
console.log(arr);    //['A','B','C','X','Y','Z','D']

splice(2,4):从下标为2的项开始,删除4项 

var arr=['A','B','C','D','E','F','G'];
arr.splice(2,4);
console.log(arr);    //['A','B','G']

splice():返回的是以数组的形式删除(替换)的项

var arr=[0,1,2,3,4,5];
var items=arr.splice(3,2,66,77,88);
console.log(arr);    //[0,1,2,66,77,88,5]
console.log(items);    //[3,4]

slice()方法用于得到子数组,类似于字符串的slice()方法 

slice(a,b)截取的子数组从下标为a的项开始,到下标为b(不包括下标为b的项)结束,不会更改原有数组

slice()如果不提供第二个参数,则表示从指定项开始,提取所有后续所有项作为子数组

slice()方法的参数如果为负数,表示数组倒数第几项

var arr=['A','B','C','D','E','F'];
var child_arr1=arr.slice(2,5);
var child_arr2=arr.slice(2);
var child_arr3=arr.slice(2,-1);
console.log(arr);    //['A','B','C','D','E','F']
console.log(child_arr1);    //['C','D','E']
console.log(child_arr2);    //['C','D','E','F']
console.log(child_arr3);    //['C','D','E']

 

 

var arr=[22,33,44,55];
//三种相同
console.log(arr.join());    //"22,33,44,55"
console.log(arr.join(','));    //"22,33,44,55"
console.log(arr.tostring());    //"22,33,44,55"
//-连接
console.log(arr.join('-'));    //"22-33-44-55"
//空字符代表直接连接起来
console.log(arr.join(''));    //"22334455"

console.log('abcdefg'.split(''));    //["a","b","c","d","e","f","g"]

字符串遍历字符也可以利用下标索引方法,用法与数组类似 

var str='我喜欢你';
console.log(str[0]);    //"我"
console.log(str.charAt(0));    //"我"

concat()方法可以合并连接多个数组 不会更改原数组

var arr1=[1,2,3];
var arr2=[4,5,6];
var arr3=[7,8,9];
var arr=arr1.concat(arr2,arr3);
console.log(arr);    //[1,2,3,4,5,6,7,8,9]

 reverse()方法用来将一个数组中全部项顺序置反

sort()方法进行数组排序

数组遍历(面试)

数组去重:定义一个空数组,利用includes()方法

var arr=[1,1,1,2,2,3,3,2,3];
var res=[];
for(var i=0;i<arr.length;i++){
    if(!res.includes(arr[i])){
        res.push(arr[i]);
    }
}
console.log(res);

数组随机:利用公式[a,b]中parseInt(Math.random()*(b-a+1))+a

var arr=[3,6,10,5,8,9];
//结果数组
var result=[];
//遍历原有数组
for(var i=0;i<3;i++){
    //随机选择一项下标
    var n=parseInt(Math.random()*arr.length);
    //把这些推入结果数组
    result.push(arr[n]);
    //删除这项,防止重复被随机到
    arr.splice(n,1);
}
console.log(result);

冒泡排序

var arr=[6,2,9,3,8,1];
//一趟一趟比较,趟数序号就是1
for(var i=1;i<arr.length;i++){
    //内层循环负责两两比较
    for(var j=arr.length-1;j>=i;j--){
        //判断项的大小
        if(arr[j]<arr[j-1]){
            //这一项比前一项还小了,那么就要交换两个变量的位置
            var temp=arr[j];
            arr[j]=arr[j-1];
            arr[j-1]=temp;
        }
    }
}

console.log(arr);    //[1,2,3,6,8,9]

 

浅克隆

var arr1=[1,2,3,4,[5,6,7]];
var result=[];
for(var i=0;i<arr1.length;i++){
    result.push(arr1[i]);
}
console.log(result);    //[1,2,3,4,[5,6,7]]
console.log(result==arr1);    //false 因为引用类型值进行比较的时候,比较的是内存地址
console.log(res[4]==arr1[4]);    //true

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/124416.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java线程间通信机制 (等待唤醒机制)

1.1 线程间通信 概念&#xff1a;多个线程在处理同一个资源&#xff0c;但是处理的动作&#xff08;线程的任务&#xff09;却不相同。 比如&#xff1a;线程A用来生成包子的&#xff0c;线程B用来吃包子的&#xff0c;包子可以理解为同一资源&#xff0c;线程A与线程B处理的动…

[JavaEE] Thread类及其常见方法

专栏简介: JavaEE从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 1.Thread 的常见构造方法 2.Thread 的几个常见属性…

机器学习基石2(noise和error)

文章目录一、什么是noise&#xff1f;二、什么是error&#xff1f;三、常用error一、什么是noise&#xff1f; 我们之前的讨论都是一种理想化的说明&#xff0c;比如数据来源于目标函数fff&#xff0c;似乎我们手里拿到的数据是这样得来的&#xff0c;随机取一个输入&#xff0…

DOM算法系列009-判断给定节点是否为块级元素

UID: 20221227215215 aliases: tags: source: cssclass: created: 2022-12-27 块级元素 给定一个节点&#xff0c;如何判定它是否为块级元素呢&#xff1f; 首先&#xff0c;块级元素一定是元素节点&#xff0c;所以它的nodeType 1其次&#xff0c;我们思考&#xff0c;有什…

Redis分布式缓存、秒杀

目录一、单点Redis的问题二、RDB三、AOF四、Redis优化秒杀流程1、秒杀步骤&#xff1a;2、Redis优化秒杀步骤&#xff1a;3、秒杀的lua脚本4、调用秒杀的lua脚本5、通过线程池&#xff0c;操作阻塞队列五、基于Redis实现共享session登录NoSQL数据库进阶实战哪吒精品系列文章一、…

linux常用命令(二)-文件操作

文件创建 - touch 一般使用touch 来创建某个新增的文件 语法 touch [-acfm][文件名]a&#xff1a;改变档案的读取时间记录c&#xff1a;假如目的档案不存在&#xff0c;不会建立新的档案。与 --no-create 的效果一样。f&#xff1a;不使用&#xff0c;是为了与其他 unix 系统…

python的tkinter(图形用户界面)

目录标题什么是图形用户界面&#xff08;GUI&#xff09;Tinter函数和参数说明&#xff08;常用&#xff09;Lable(标签)&#xff1a;效果Button(按钮)效果Entry(文本框)效果Text &#xff08;多行文本框&#xff09;Canvas(画布)效果Message(消息弹窗)效果什么是图形用户界面&…

kaggle学习笔记-otto-baseline4-本地CV的构建

总览 步骤 1 - 生成候选 对于每个测试用户&#xff0c;我们生成可能的选择&#xff0c;即候选人。、我们从 5 个来源生成候选人&#xff1a; 点击、购物车、订单的用户历史记录测试周期间最受欢迎的 20 次点击、购物车、订单具有类型权重的点击/购物车/订单到购物车/订单的共…

中国芯片奇才,仅用三年打破欧美垄断,创造奇迹

有这么一位中国人&#xff0c;打破了欧美长达10年的芯片技术垄断。这位最该追的星&#xff0c;她是谁&#xff1f;又是如何让欧美芯片领域闻风丧胆。早在2017年&#xff0c;芯片国产化已接近50%&#xff0c;然而25g以上芯片却仅有3%&#xff0c;该技术一直掌握在欧美等发达国家…

融云任杰:激活组织生命力 让听见炮火的人做决策 | TGO专访

任杰&#xff0c;融云联合创始人兼首席科学家&#xff0c;TGO 鲲鹏会&#xff08;北京&#xff09;学员&#xff1b;曾就职于微软和神州泰岳等公司&#xff0c;在微软两次获得全球杰出员工奖&#xff0c;曾负责中国联通搭建 WAP 网关、增值业务管理平台&#xff1b;在神州泰岳期…

数据结构(线性表及顺序表)

目录 线性表 线性结构定义 常见线性结构 线性表 顺序表及其实现 顺序结构 顺序表的存储映像图 顺序表seqList及操作的定义&#xff08;seqList.h&#xff09; 顺序表基本操作的实现分析 查找操作 实现代码 插入操作 实现代码 删除操作 实现代码 顺序表应用——…

手绘图说电子元器件-集成电路

集成电路是高度集成化的电子器件,具有集成度高、功能完整、可靠性好、体积小、重量轻、功耗低的特点,已成为现代电子技术中不可或缺的核心器件。 集成电路可分为模拟集成电路和数字集成电路两大类,包括集成运放、时基集成电路、集成稳压器、门电路、触发器、计数器、译码器…

【 uniapp - 黑马优购 | 分类界面 】创建cate分支、数据获取、动态渲染

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大二在校生&#xff0c;讨厌编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;小新爱学习. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc…

【Lilishop商城】No4-4.业务逻辑的代码开发,涉及到:会员B端第三方登录的开发-web端第三方授权联合登录接口开发

仅涉及后端&#xff0c;全部目录看顶部专栏&#xff0c;代码、文档、接口路径在&#xff1a; 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑&#xff0c;其中重点包括接口类、业务类&#xff0c;具体的结合源代…

机器学习——支持向量机(SVM)

文章目录1. 优化目标2. 大间距的直观理解3. 大间距分类背后的数学支持向量机&#xff08;Support Vector Machines&#xff09;是广泛应用于工业界和学术界的一种监督学习算法&#xff0c;在学习复杂的非线性方程时提供了一种更为清晰&#xff0c;更加强大的方式。下面从SVM的优…

【nowcoder】笔试强训Day10

目录 一、选择题 二、编程题 2.1井字棋 2.2密码强度等级 一、选择题 1.下列运算符合法的是&#xff08; &#xff09; A. && B. <> C. if D. : 逻辑与&&语法规则&#xff1a;表达式1&&表达式2&#xff0c;其中两个表达式都是布尔表达式…

LeetCode453.最小操作次数使数组元素相等

LeetCode刷题记录 文章目录&#x1f4dc;题目描述&#x1f4a1;解题思路&#x1f4dc;题目描述 给你一个长度为 n 的整数数组&#xff0c;每次操作将会使 n - 1 个元素增加 1 。 返回让数组所有元素相等的最小操作次数。 示例1 输入&#xff1a;nums [1,2,3] 输出&#xff1a…

EduIQ Network LookOut Administrator

EduIQ Network LookOut Administrator 网络了望管理员允许您从屏幕的远端实时监视计算机。您可以随时看到他们在做什么。除了计算机控制&#xff0c;您还可以捕获摩西和键盘用户。使用Network LookOut Administrator软件可以完成一些有用的工作&#xff1a; 远程儿童计算机控制…

记录一次Gstreamer运行报错排查

背景 系统&#xff1a;Ubuntu 20.04 显卡型号&#xff1a;RTX 2060 之前正常运行的Gstreamer的编解码代码&#xff08;有用到显卡硬件加速&#xff09;&#xff0c;突然运行报错。经过一番折腾&#xff0c;最终找到原因&#xff0c;是因为NVIDIA驱动近期更新了&#xff0c;与…

Node.js——模块化(一)

1. 模块化的基本概念 1.1 什么是模块化 1. 编程领域中的模块化 1.2 模块化规范 2. Node.js 中的模块化 2.1 Node.js 中模块的分类 2.2 加载模块 加载自定义模块给相对路径 ./是平级&#xff08;同一文件夹下调用&#xff09; //这是07.test.js代码 // 注意&#xff1a;在使用…