首页 > 试题广场 >

下面js数组的方法中,哪些方法不能改变自身数组?

[单选题]
下面js数组的方法中,哪些方法不能改变自身数组?
  • pop
  • splice
  • sort
  • concat
推荐
答案应该是D。
因为:
pop()方法用于删除数组的最后一个元素,并返回被删除的最后一个元素,这样的话数组就被改变了。
splice()方法可以对数组中已经存在元素进行删除,也可以添加元素到数组中。
sort()方法对数组中所有的元素都进行排序,如果没有提供比较函数compareFunction,则按照字符串的Unicode码的顺序进行排序。
所以以上三种方法都改变了数组。
 concat()方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本,返回一个新的数组。该数组是通过把所有的arrayX参数添加到arryaObject中生成的,如果要进行 concat()操作的参数是数组,那么添加的是数组中的元素,而不是数组。
编辑于 2017-05-23 14:29:10 回复(0)
pop方法:用于删除并返回数组的最后一个元素,把数组长度减1,并且返回它删除的元素的值。如果数组已经为空,则pop()不改变数组,并返回undefined值
splice()方法:向/从数组中添加/删除项目,然后返回被删除的项目,该方***改变原始数组
sort()方法:用于对数组的元素进行排序。返回对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
concat()方法: 用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
综上所述,只有concat()方法不会改变数组,故选D
编辑于 2017-05-23 14:29:10 回复(0)
Array对象中的方法:
不改变原数组的有
concat():连接数组
join():数组=>字符串
slice():截取数组的一部分
改变原数组的有:
pop()删除并返回数组最后一个元素,shift()与其相反,删除第一个
push()向数组末添加>=1个元素,返回数组新长度,unshift()与其相反,向开头添加
sort(函数)对数组元素排序
splice()改变(删除、替换)数组内部元素,返回由被删除项目组成的新数组(如果有的话)


编辑于 2019-09-04 21:52:46 回复(1)
数组的方法中,改变原数组的有:push、pop、unshift、shift、sort、splice、reverse;
不改变原数组的有:concat、join、toString、slice
发表于 2018-05-07 11:17:52 回复(0)
这题错了吧,splice可以改变,concat返回新值
发表于 2017-01-19 16:15:45 回复(3)
D,A删除最后一项,B删除,插入,替换,C倒序,D创建副本,不改变当前数组
发表于 2017-02-13 20:10:43 回复(0)
D var arr1=[1,3,2] var arr2=[a,b] arr1.sort(); console.log(arr);//[1,2,3] var arr3=arr1.concat(arr,arr2); console.log(arr1)//[1,2,3] console.log(arr3)//[1,2,3,a,b,c] 前三个,改变了数组本身 第四个concat返回值是连接后的数组,数组本身没有被改变
发表于 2017-02-09 17:18:01 回复(0)
concat是纯函数(React中会讲),所以不会改变原本的数组同时返回值也是数组
发表于 2020-05-29 11:22:01 回复(0)
pop方法:用于删除并返回数组的最后一个元素,把数组长度减1,并且返回它删除的元素的值。如果数组已经为空,则pop()不改变数组,并返回undefined值
splice()方法:向/从数组中添加/删除项目,然后返回被删除的项目,该方***改变原始数组
sort()方法:用于对数组的元素进行排序。返回对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
concat()方法: 用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
发表于 2017-09-20 16:06:10 回复(0)
pop:排在最后面的那个,**,粥没了,第二天,没人排队,分个毛线的粥啊
splice:做地铁,排队买票,靠只有一张20块的,***,没零钱,走了。。。【删除】
           这下有零钱了吧,刚刚排的那么辛苦,前面那个,对,就是你,**吧,老子刚刚排你前面的。。。【插入】
            大哥,我错了,不知道那个是你小弟,这位置就让你了。。。【替换】
sort:。。。排序【有比较函数,就按这规则来,没有就字符编码】
concat:。。。合并【看到这么大的元气弹(副本)没有,一星龙GG吧】
发表于 2017-09-05 22:45:13 回复(0)
讲道理,我感觉是C答案B不是可以删除一个数组元素吗
发表于 2017-01-08 23:27:11 回复(3)
改变原数组的方法 (七种)
 push 末尾增加
pop 从最后一位去裁剪
unshift 在数组前面加东西,正好与pop相反
shift 在数组前面剪切
reverse 逆转数组
sort 对数组进行排序   提一嘴:sort与reserve一起,倒排序
splice: 例子:arr.splice(从第几位开始,截取多少的长度,在切口处添加新的数据(可以多个))
不改变原数组方法
concat 将数组连接起来原数组不变
toString 将数组转化为字符串
slice 从该位开始截取 不改变原数组 arr.join("-")) //会把数组的每一位连接起来 1-2-3-4-5-6 slpit 把字符串按照什么划分成数组
map
编辑于 2020-09-16 17:49:24 回复(1)
如果仅删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组。

发表于 2021-07-22 23:50:16 回复(0)
完全不记得
发表于 2020-10-02 20:30:01 回复(0)
sort会改变原来数组 concat返回的是一个副本
发表于 2020-04-21 21:28:29 回复(0)
splice(start: number, deleteCount?: number): T[];
    /**
     * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.
从一个数组的末尾开始删除元素,如果必要的话插入新的元素在删除的位置,返回的是删除的元素
     * @param start The zero-based location in the array from which to start removing elements.
元素的开头是以 0 开头的
     * @param deleteCount The number of elements to remove.
deleteCount 是从 elements 中移除的数量
     * @param items Elements to insert into the array in place of the deleted elements.
items 是向元素中插入的数组的元素
     */
发表于 2020-04-06 22:03:45 回复(0)
数组API(方法)(Application Programming Interface):API 应用程序编程接口,预定义好的一些方法或者函数 (1)toString() 将数组中的元素按照逗号组合成字符串 (2)join('-') 将数组中的元素按照指定字符组合成字符串,默认是逗号 (3)concat(arr2,arr3) 拼接多个数组 (4)slice(start, end) 截取数组中的元素,start开始的下标,end结束的下标,不包含end本身,如果是负数表示从后往前,从-1开始;返回一个数组。 (5)reverse() 翻转数组中的元素 (6)sort() 对数组中的元素进行排序,默认按照Unicode码从小到大排序 (7)splice(start, count, value1,value2...) 删除数组中的元素,start开始的下标,count删除的数量,value删除后插入的元素; 返回删除的元素,原数组会发生变化。 (8)push() 往数组的末尾添加元素,返回数组的长度 (9)pop() 删除数组末尾的元素,返回删除的元素 (10)unshift() 往数组的开头添加元素,返回数组的长度 (11)shift() 删除数组开头的元素,返回删除的元素
发表于 2020-03-27 13:36:17 回复(0)
答案为D。
因为:
1、pop() 方法用于删除数组的最后一个元素,并返回被删除的最后一个元素。
2、splice() 方法用于对数组进行删除 / 添加元素,并返回被删除的元素,如果有的话。
3、sort() 方法用原地算法对数组元素进行排序,并返回数组。
以上3种方法都改变了数组。
而 contact() 方法用于连接两个或多个数组,此方法不会更改现有数组而是返回一个新数组。
发表于 2019-11-12 19:17:00 回复(0)
数组的方法中,
改变原数组的有:push、pop、unshift、shift、sort、splice、reverse;
不改变原数组,生成新数组:concat、join、toString、slice
编辑于 2019-05-15 16:55:55 回复(0)
数组的方法中,改变原数组的有:push、pop、unshift、shift、sort、splice、reverse; 不改变原数组的有:concat、join、toString、slice contcat是连接两个数组
编辑于 2019-05-05 09:44:00 回复(0)
pop()方法用于删除数组的最后一个元素,并返回被删除的最后一个元素,这样的话数组就被改变了。
splice()方法可以对数组中已经存在元素进行删除,也可以添加元素到数组中。
sort()方法对数组中所有的元素都进行排序,如果没有提供比较函数compareFunction,则按照字符串的Unicode码的顺序进行排序。
所以以上三种方法都改变了数组。
 concat()方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本,返回一个新的数组。该数组是通过把所有的arrayX参数添加到arryaObject中生成的,如果要进行 concat()操作的参数是数组,那么添加的是数组中的元素,而不是数组。

发表于 2019-01-16 09:57:30 回复(0)