首页 > 编程语言 >【JavaScript】26_数组的方法,对象的复制与数组的复制

【JavaScript】26_数组的方法,对象的复制与数组的复制

时间:2023-02-23 14:03:22浏览次数:51  
标签:26 console log 沙和尚 arr 复制 result 数组

4、数组的方法

​https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array​

Array.isArray()

  • 用来检查一个对象是否是数组

at()

  • 可以根据索引获取数组中的指定元素
  • at可以接收负索引作为参数

concat()

  • 用来连接两个或多个数组
  • 非破坏性方法,不会影响原数组,而是返回一个新的数组
<script>
console.log(Array.isArray({name:'孙悟空'}))//false
console.log(Array.isArray([1,2,3]))//true

const arr = ['孙悟空','猪八戒','沙和尚','唐僧','白骨精']
console.log(arr.at(-2))//负数是从-1开始的,就是倒数第二个
console.log(arr[arr.length-2])//两者相同

const arr2 = ['白骨精','蜘蛛精','玉兔精']
let result = arr.concat(arr2,['牛魔王的','铁扇公主'])
console.log(result)//相当于是合并了arr和arr2两个数组,顺便添加了两个值
</script>

5、对象的复制

indexOf()

- 获取元素在数组中第一次出现的索引
- 参数:
1. 要查询的元素
2. 查询的起始位置

lastIndexOf()

- 获取元素在数组中最后一次出现的位置

- 返回值:

找到了则返回元素的索引, 没有找到返回-1

join()

- 将一个数组中的元素连接为一个字符串
- ["孙悟空", "猪八戒", "沙和尚", "唐僧", "沙和尚"] -> "孙悟空,猪八戒,沙和尚,唐僧,沙和尚"
- 参数:
指定一个字符串作为连接符

slice()

- 用来截取数组(非破坏性方法)     
- 参数:
1. 截取的起始位置(包括该位置)
2. 截取的结束位置(不包括该位置)
- 第二个参数可以省略不写,如果省略则会一直截取到最后
- 索引可以是负值

如果将两个参数全都省略,则可以对数组进行浅拷贝(浅复制)
<script>
let arr = ['孙悟空','猪八戒','沙和尚','唐僧','沙和尚']

let result = arr.indexOf('沙和尚',3)//4,起始位置从位置3开始的(下标为2),所以最后找到的是下标为4的
result = arr.lastIndexOf("沙和尚",3)//2,倒着找的,最后一次出现的位置为下标为2的地方
result = arr.indexOf("白骨精")

result = arr.join()//转换成字符串
result = arr.join("@_@")
result = arr.join("")//完全连接在一起了,没有逗号啥的

arr = ['孙悟空','猪八戒','沙和尚','唐僧']
result = arr.slice(0,2)
result = arr.slice(1,3)
result = arr.slice(1,-1)//到倒数第一个为止,所以只能取到倒数第二个沙和尚那
console.log(result)
</script>

6、数组的复制

如何去复制一个对象 复制必须要产生新的对象

当调用slice时,会产生一个新的数组对象,从而完成对数组的复制

<script>
const arr = ["孙悟空", "猪八戒", "沙和尚"]
// const arr2 = arr // 不是复制
// arr2[0] = "唐僧"

const arr3 = arr.slice()
// console.log(arr === arr2)
// console.log(arr2)

arr3[0] = "唐僧"
console.log(arr)
console.log(arr3)
</script>

标签:26,console,log,沙和尚,arr,复制,result,数组
From: https://blog.51cto.com/wujianrenn/6081147

相关文章

  • 在线客服系统复制聊天链接,JS实现复制文本函数
    客服系统(gofly.v1kf.com)后台有这个功能,可以直接复制文本信息,JS实现的函数  functioncopyToClipboard(text){vardummy=document.createElement("input");//......
  • 【JavaScript】25_数组初步
    1、简介数组(Array)数组也是一种复合数据类型,在数组可以存储多个不同类型的数据数组中存储的是有序的数据,数组中的每个数据都有一个唯一的索引可以通过索引来操作获取数据数......
  • 解决windows复制粘贴自动格式转换功能失效
    最开始用vscode的jupyternotebook发现粘贴格式乱的一托。后面以为是vscode或者notebook的问题,下了这个插件pasteandintend也没解决,搞了一下午搞得怀疑人生。之后改用pych......
  • vim 复制
    在vim中快速复制粘贴多行 用vim写代码时,经常遇到这样的场景,复制多行,然后粘贴。 这样做:1.将光标移动到要复制的文本开始的地方,按v进入可视模式。2.将光标移动到要复......
  • js 给树形(层级)数组添加层级标识
    树形数据,需要给每层的数据添加层级,如下:consttreeData=[{id:1,name:'a',children:[{id:101,name:'a1',children:null}]},{......
  • Java中的数组长度最大值为什么是 Integer.MAX_VALUE - 8
    Java中的数组长度最大值为什么是Integer.MAX_VALUE-8/* 因为数组容量使用int类型数据进行标识, 所以我们认为数组容量MAX是Integer.MAX_VALUE, 但是在编译器中定义......
  • 转载:PageOffice在线只读打开word文件并禁止复制
    一、PageOffice禁止复制1、poCtrl.setAllowCopy(false);//禁止拷贝,权限比较大,系统的快捷键Ctrl+C,Ctrl+V也会受到影响,但是可以在其他程序中可以使用右键菜单进行拷贝粘贴......
  • 使数组中小于k的元素相邻的最小交换次数
    packagemainimport("bufio""fmt""math""os""sort""strconv""strings")/*描述:给出数字k,请输出所有结果小于k的整数组合到一起的最小......
  • 西电oj245 成绩统计 结构体数组使用
    #include<stdio.h>structstudent{//定义一个结构体数组 intnum; charname[11]; floatg1; floatg2; floatg3; floataver;};intmain(){ student......
  • 有序数组的平方(双指针)
    题目:给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例1:输入:nums=[-4,-1,0,3,10]输出:[0,1,9,16,100]解......