编程小技巧

# 编程小技巧

[TOC]

# 一、两两交换

^:按位异或,相同为0,相异为1。

a^a=0;a^0=a;(a^b)^c=a^(b^c)。

// 前提:a不等于b
a ^= b;
b ^= a;
a ^= b;

// 无前提
a += b;
b = a - b;
a -= b;

// 数组值的交换,若出现a[b]与a[b]交换的情况,需要中间变量,因为一变就是两个a[b]的值一起发生变化。
1
2
3
4
5
6
7
8
9
10
11

# 二、矩阵的转置

let arr=[[1,2,3],[4,5,6],[4,5,6]];
let newArr= arr[0].map((col,i)=>arr.map((row)=>row[i]));
// newArr
// [[1,4,4],[2,5,5],[3,6,6]]
1
2
3
4