首页 > 其他分享 >slice不改变原数组,返回截取的数组,slice(start,end), splice改变原数组splice(start,how many,element1,…)

slice不改变原数组,返回截取的数组,slice(start,end), splice改变原数组splice(start,how many,element1,…)

时间:2023-11-10 23:22:46浏览次数:38  
标签:begin slice end 数组 start splice

执行以下程序,输出结果为()

var a =[1,2,3];
var b = a.slice();
b.push(4);
console.log(a)

[1,2,3]

array.slice(begin,end)将返回一个由begin和end决定的原数组的浅拷贝,
其中,begin和end参数均是可选参数,如果省略begin,则默认从索引值为0开始提取,如果省略end,则默认提取到数组最后一个元素,
同时省略begin和end参数时,将提取原数组的所有元素。

array.slice()方法不会修改原数组,如果原数组元素是引用类型,则会复制引用地址到新数组,如果是基本类型,则会直接拷贝值到新数组,但不管往新数组还是原数组中添加新元素,都不会对另一数组产生影响,故数组a的值仍然为[1,2,3]

slice不改变原数组,返回截取的数组,slice(start,end),splice改变原数组splice(start,how many,element1,…)

JS的数组方法中改变原数组的方法有以下几个(不包含push、pop、shift、unshift):

sort(); // 数组排序
reverse(); // 数组反转
splice(); // 删除/插入

标签:begin,slice,end,数组,start,splice
From: https://www.cnblogs.com/longmo666/p/17825322.html

相关文章

  • call与apply的第一个参数都为this的指向,call后面的参数为传入的参数列表,apply为参数
    【摘自JavaScript高级程序设计】函数还有两个方法:apply()和call()。这两个方法都会以指定的this值来调用函数,即会设置调用函数时函数体内this对象的值。apply()方法接收两个参数:函数内this的值和一个参数数组。第二个参数可以是Array的实例,但也可以是arguments对象。来看下面的例......
  • python删除二维数组的某一行某一列
    Python删除二维数组的某一行某一列1.简介在Python中,二维数组可以通过列表嵌套的方式实现。删除二维数组的某一行或某一列可以使用Python内置的列表操作方法来实现。在本篇文章中,我将向你介绍如何使用Python来删除二维数组的某一行或某一列。2.删除二维数组的某一行删除二维......
  • 微信小程序中的数组有许多常用的方法和用法
    声明和初始化一个数组:vararray=[];//声明一个空数组vararray=[1,2,3];//声明并初始化一个有元素的数组获取数组长度:varlength=array.length;//获取数组的长度访问和修改数组元素:varelement=array[index];//获取指定索引位......
  • 微信小程序数组
    常用函数concat():连接两个或多个数组,返回连接后的新数组。示例:constarr1=[1,2,3];constarr2=[4,5,6];constarr3=arr1.concat(arr2);//返回[1,2,3,4,5,6]copyWithin():从数组指定位置开始替换指定长度的元素。示例:constarr=[1,2,3,4,5];ar......
  • typeof只能检测数据类型,而不能检测从数据类型中派生的其他类型,数组为object派生对象,所
    typeof[]返回值为objecttypeof只能检测数据类型,而不能检测从数据类型中派生的其他类型,数组为object派生对象,所以依然返回objecttypeof判断引用类型数据,除了function以外都会判断成为objectfunctionfn(){console.log(1);}conso......
  • 语句var arr=[a,b,c,d];执行后,数组arr中每项都是一个整数,下面得到其中最大整数语句正
    语句vararr=[a,b,c,d];执行后,数组arr中每项都是一个整数,下面得到其中最大整数语句正确的是哪几项?AMath.max(arr)BMath.max(arr[0],arr[1],arr[2],arr[3])CMath.max.call(Math,arr[0],arr[1],arr[2],arr[3])DMath.max.apply(Math,arr)正确答案:BCDA选项错误......
  • 以下哪些Array对象的方法不会更改原有数组?
    以下哪些Array对象的方法不会更改原有数组?Aconcat()Bsplice()Cmap()Dsort()正确答案:AC会改变数组的方法:push()pop()shift()unshift()splice()sort()reverse()forEach()不会改变数组的方法:filter()concat()slice()map()concat函数连接多个array,不改变原arr......
  • Go语言中切片和数组有什么区别
    在Go语言中,数组的结构非常简单,它由两个部分组成:数据类型(DataType):数组中包含的元素的数据类型是固定的,所有元素必须具有相同的数据类型。这意味着一个数组可以包含整数、浮点数、字符串或其他数据类型,但所有元素的类型必须一致。长度(Length):数组的长度是在声明时指定的,它表示数组中......
  • 已知数组arr = [2,20,3,12,9],现在要对数组进行遍历,只要数组存在大于10的元素,则输出tru
    Avarres=arr.filter((val1,val2)=>{returnval1>10;})console.log(res);Bvarres=arr.some((val1,val2)=>{returnval1>10;})console.log(res);Cvarres=arr.every((val1,val2)=>{returnval1>10;})console.log(res);Dvarres......
  • 使用sizeof()和strlen()去计算【数组】和【指针】的大小
    (目录)一、知识回顾1、回顾sizeof()、strlen的作用:sizeof()是用来求取变量或者类型所占内存空间的大小(单位:字节)。sizeof计算的是占用内存空间的大小,单位是字节,不关注内存中到底存放的是什么。sizeof不是函数,是操作符strlen()是一个库函数是专门用来计算字符串长度的,在......