首页 > 试题广场 >

以下哪些Array对象的方法不会更改原有数组?

[不定项选择题]
以下哪些Array对象的方法不会更改原有数组?
  • concat()
  • splice()
  • map()
  • sort()
会改变数组的方法:
push()
pop()
shift()
unshift()
splice()
sort()
reverse()
forEach()
不会改变数组的方法:
filter()
concat() 
slice()
map()


发表于 2020-10-16 11:57:31 回复(13)

concat函数连接多个array,不改变原array,返回连接的结果

map函数对array中的每一项执行指定函数,将每一项执行的结果组成新的array返回

sort函数返回排序后的array,不改变原array

splice函数对array进行操作,会改变array

发表于 2019-08-16 09:59:16 回复(5)
sort() 方法用原地算法对数组的元素进行排序,并返回数组,所以会改变原数组
发表于 2019-08-16 17:17:56 回复(0)
关于map:当数组中元素是值类型,map不会改变原数组;当是引用类型,则可以改变原数
发表于 2021-01-26 09:03:23 回复(0)
一般在使用sort或者reverse等可以改变数组内顺序的函数时,我们是不需要赋值给新的变量的,直接a.sort()即可,数组内的顺序已经改变了
如果想要想要将返回值赋值给变量b,如图所示,b===a,所以sort函数并没有返回一个新的数组
本题”是否更改原始数组“本质上问的不是数组的值发生变化了没有,而是是不是返回了新的数组,所以不选sort
发表于 2020-04-12 16:57:29 回复(3)
这个题出的 不严谨吧  都没说 修改得数组是里是都是基本数据类型 还是引用数据类型啊  要是引用数据类型  map 也会修改得啊
发表于 2022-09-08 17:19:07 回复(0)
concat连接复数个数组 不改变原数组产生新数组
splice 改变原数组
map对数组每一项执行指定操作 返回新数组
sort在原数组排序
发表于 2022-07-26 22:55:23 回复(0)
这道题本身不太严谨,如果map的元素时对象。对元素进行操作,会修改原数组中的元素的。
发表于 2022-06-11 14:11:30 回复(0)
这个是啥子题目。
bb = [{a: 1}]
bb.map(i=>i.a +=1)
--------------------
bb数组已经改变了
发表于 2021-12-17 16:07:53 回复(0)
<html>
	<meta charset="utf-8">
	<head>
		<title>ChangeArray</title>
	</head>
	
	<body>
		<p id = "concat"></p>
		<p id = "map"></p>
		<p id = "sort"></p>
		<p id = "splice"></p>
	</body>
	
	<script>
		function concat(arr,arr1){
			arr.concat(arr1);
			return arr;
		}
		
		function splice(arr){
			arr.splice(2);
			return arr;
		}
		
		function map(arr){
			arr.map(Math.sqrt);
			return arr;
		}
		
		function sort(arr){
			arr.sort();
			return arr;
		}
		
		var arr = [7,6,5,3,9,4,1];
		var arr1 = [2,2,1,1,5,5];
		/*
          首先测试concat方法;其次是map方法;
          接下来是sort方法;最后splice(使用的是排序之后的数组)
        */
		document.getElementById("concat").innerHTML = concat(arr,arr1);
		document.getElementById("map").innerHTML = map(arr);
		document.getElementById("sort").innerHTML = sort(arr);
		document.getElementById("splice").innerHTML = splice(arr);
	</script>
</html>
执行结果:

发表于 2020-10-24 12:32:38 回复(0)
sort方法,数组在原数组上进行排序,不生成副本
发表于 2020-07-10 16:56:42 回复(0)
splice如果只做添加功能吗?不是也不会改变原数组吗?
发表于 2020-03-14 08:54:31 回复(1)
那不应该选 AD吗?
发表于 2019-09-22 08:34:49 回复(1)
我佛了,将splice看成slice了,slice方法也不会更改原数组
发表于 2019-08-28 21:32:37 回复(0)