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.2k
1 个回答
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'));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题