即使具有相同的值,排序后的数组也不相同
Arrays are not identical after sorting even with identical values
var a = [1,2,3]
var b = a.sort();
console.log('a',a,'b',b); // a [1,2,3] b [1,2,3]
console.log(a === b); // true
a = [1,3,2];
console.log(a.sort() === b) // false
console.log('a',a,'b',b); // a [1,2,3] b [1,2,3]
console.log(a === b) // false
我的问题是——为什么?[我得到了两个错误。]还有一点,原始数组可以保持不变,比如一些参数或者其他排序函数?
我的意思是:
var a = [1,3,2];
var b = a.SomeOtherSortFn();
console.log('a',a,'b',b); // a [1,3,2] b [1,2,3]
Edit:我的目标不是检查数组是否相等。比较长度,循环遍历值-没什么大不了的。我的问题是,为什么一开始相同的数组在第二遍就不一样了。
我知道答案了,谢谢你Arun Ghosh
比较两个数组时,如果它们引用同一对象,则返回值为true
。不比较数组的值或内容
我不太清楚你使用的是哪个数字,但我猜你必须使用可选参数compareFunction:(你可以在这里阅读完整的指南)
var arr = [ 40, 1, 5, 200 ];
function comparar ( a, b ){ return a - b; }
arr.sort( comparar ); // [ 1, 5, 40, 200 ]
因为如果你不使用它,你会得到这个:(数字按unicode排序)
var arr = [ 40, 1, 5, 200 ];
arr.sort(); //[ 1, 200, 40, 5 ]
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Javascript中的多维数组排序索引问题
- 如何按日期对Javascript对象数组排序
- 数组排序后显示更改
- 当许多元素相等时,Javascript数组排序无法正常工作
- Javascript数组排序速度受字符串长度的影响
- 按唯一键将对象数组排序为数组
- 以 js 为单位的数组排序
- js 数组排序无法正常工作
- 数组排序.论点从何而来
- 不需要的数组排序
- 数组排序不正确/不可预测,使用 indexOf 时
- Javascript将数组排序到树中
- 随后的多维数组排序会产生意外的结果
- 数组排序基于纯javascript搜索文本匹配
- Javascript自定义数组按数组排序
- 使用字符串按属性错误对对象进行数组排序
- 多维数组排序
- JavaScript与PHP在数组排序中的对比
- Javascript-关联数组排序