JS中sort()方法返回值?
今天因为业务需要,使用了很久没有使用的函数sort()
其实使用很简单,但是今天不小心发现一句官方的解释,原话是:“返回值:对数组的引用。请注意,数组在原数组上进行排序,不生成副本。”
这句话就有点没搞懂到底是什么意思了
对数组的引用是什么鬼
比如:
var list= [
{name:"小妹",datetime: "2021-07-09"},
{name:"小妹",datetime: "2021-03-09"},
{name:"小妹",datetime: "2021-09-09"}
]
list.sort(function(a, b) {
return a.datetime - b.datetime ? 1 : -1
});
我可以:(情况一)
let newArr = list.sort(function(a, b) {
return new Date(a.datetime).getTime() - new
Date(b.datetime).getTime()
});
console.log(newArr)
也可以:(情况2)
list.sort(function(a, b) {
return new Date(a.datetime).getTime() - new
Date(b.datetime).getTime()
});
console.log(list)
两个都可以
矛盾就在这,如果是情况1,那说明返回的是新数组,那‘对数组的引用’是什么意思?不是表示不返回新数组?
有没有大佬可以解释一下这句非人类语言要表达什么呢?
回复
1个回答
test
2024-07-08
“人话版本”:就是说 sort()
会修改原数组项的排序,sort()
结束后会返回一个数组结果,这个结果其实就是原数组。并不是说会返回一个新的数组给你。
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容