编程小技巧
# 编程小技巧
[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
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
2
3
4