スプレッドシート構文、展開演算子(spread演算子)-1


展開演算子
展開演算子はユニークで有用な構文です.使用方法は配列またはオブジェクトで、変数名の前に3つの句点(...)があります.入力します.配列、オブジェクト、および関数パラメータ式でのみ使用できます([]、{}、().
アレイ演算子ES 5構文の展開
var array1 = ['one', 'two'];
var array2 = ['three', 'four'];
var combined = [array1[0], array1[1], array2[0], array2[1]]; // 1
var combined = array1.concat(array2); // 2
var combined = [].concat(array1, array2); // 3
var first = array1[0];
var second = array1[1]; // 4
var three = array1[2] || 'empty'; // 5

function func() {
  var args = Array.prototype.slice.call(this, arguments); // 6
  var first = args[0];
  var others = args.slice(1, args.length); // 7
}
1->配列の各要素を抽出し、新しい配列を作成します.
2,3->concat()関数で2つの配列を結合
4->インデックスで配列要素を抽出
抽出する配列要素がないため、5->||演算子と組み合わせてデフォルト値を保存できます.
6->特殊変数(パラメータ)を使用して、関数のパラメータ項目を配列に変換します.(func(a,b,c)におけるargs[0]はa,args[1]はb,args[2]はc)
7->インデックス範囲に対応する配列要素を抽出します.
配列演算子ES 6構文の展開
var array1 = ['one', 'two'];
var array2 = ['three', 'four'];
var combined = [...array1, ...array2];
// combined = ['one', 'two', 'three', 'four'];
var [first, second, three = 'empty', ...others] = array1;
// first = 'one', second = 'two', three = 'empty', others = []

function func(...args) {
  var [first, ...others] = args;
  console.log(...args);
}

function func(first, ...others) {
  var firstInES6 = first;
  var othersInES6 = others;
}
es 6文法はもっと簡潔になった.
オブジェクト演算子es 5を展開
var objectOne = { one: 1, two: 2, other: 0 };
var objectTwo = { three: 3, four: 4, other: -1 };

var combined = {
  one: objectOne.one,
  two: objectOne.two,
  three: objectTwo.three,
  four: objectTwo.four,
};
var combined = Object.assign({}, objectOne, objectTwo);
// combined = { one: 1, two: 2, three: 3, four: 4, other: -1}
var combined = Object.assign({}, objectOne, objectTwo);
// combined = { one: 1, two: 2, three: 3, four: 4, other: 0}
var others = Object.assign({}, combined);
delete others.other;
オブジェクト演算子es 6を展開
var objectOne = { one: 1, two: 2, other: 0 };
var objectTwo = { three: 3, four: 4, other: -1 };
var combined = {
  ...objectOne,
  ...objectTwo,
};
// combined = { one: 1, two: 2, three: 3, four: 4, other: -1} 
var combined = {
  ...objectTwo,
  ...objectOne,
};
// combined = { one: 1, two: 2, three: 3, four: 4, other: 0}
var { other, ...others } = combined;
// others = { one: 1, two: 2, three: 3, four: 4}