配列の要素の順番を入れ替えるとき、
let temp = ary[x]; ary[x] = ary[y]; ary[y] = temp;
みたいにやってたけど、
なんか1行でできるらしい。
function swap(a,x,y){ a[x]=[a[y],a[y]=a[x]][0]; return a; }
最初見たとき意味わかんなかったんだけど、コメント追加して書き下すとこう。
function swap(array,index1,index2){ // array[y]の値を添え字0に、 // array[y]=array[index1]の「代入の実行結果」を添字1に持った配列を作成 let array2 = [array[index2],array[index2]=array[index1]]; // 上記の配列の添字0をarray[index1]に代入することで、 // 引数の配列の入れ替えが完了する array[x] = array2[0]; return array; } let ary = [9,8,7,6,5,4,3,2,1]; console.log(swap(ary,8,3));
言われてみりゃなるほどなって感じ。