js排序的问题?
请问如何让ar1这种ip排序,js可以实现吗?另外,我希望是用换行符分割(现在是,分割),排序后也是一行一个。请问可以实现吗
<script>
var ar1=[218.11.247.58,61.184.106.130,119.120.213.63]
var ar2=[2,16,36,8,56]
ar1.sort()
ar2.sort()
console.log(ar1)
console.log(ar2)
</script>
回复
1个回答
test
2024-07-04
var ar1 = ["218.11.247.58", "61.184.106.130", "119.120.213.63"];
var ar2 = [2, 16, 36, 8, 56];
ar1.sort((a, b) => {
const aParts = a.split('.').map(Number);
const bParts = b.split('.').map(Number);
for (let i = 0; i < 4; i++) {
if (aParts[i] !== bParts[i]) {
return aParts[i] - bParts[i];
}
}
return 0;
});
ar2.sort((a, b) => a - b);
console.log(ar1.join('\n'));
console.log(ar2.join('\n'));
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容