blog

ES6 `...` 拡張/コレクション演算子の説明

私の理解では、()で囲むと一つの値に展開され、[]で囲むと配列に展開されます。 これはJAVAと同じで、入力数が不確定な場合の形式パラメータに使えます。...

Apr 27, 2020 · 1 min. read
シェア

I. エクステンションオペレーター

私の理解では、()で囲むと1つの値に展開され、[]で囲むと配列に展開されます。

apply

var b = function (obj, foo, A) {
    console.log(obj, foo, A);
};
var bar = [
    0x1,
    0x2,
    0x3
];
b(...bar);

それを応用して書いてください:

test.apply(null,arr);

concat

var bar = [
    0x1,
    0x2,
    0x3,
    0x4
];
var obj = [
    0x0,
    ...bar,
    0x5,
    0x6
];
console.log(obj);

concatで書き込みます:

[0].concat(arr1,5,6); // [0, 1, 2, 3, 4, 5, 6]

split

var a = 'hello';
var foo = [...a];
console.log(foo);

分割して書いてください:

'hello'.split(''); // ["h", "e", "l", "l", "o"]

II.コレクション・オペレーター

不定数の形式パラメータを受け取ります。

この関数は、JAVAと同様に、パスの数が不確定な場合に、形式的なパラメータに対して使用することができます。

var bar = function (c, ...foo) { console.log(c, foo); }; bar('hello', 0x2, 0x3, 0x3, 0x4);

デコンストラクションと併用

var [b, ...bar] = [
    0x1,
    0x2,
    0x3,
    0x4
];
console.log(b, bar);
Read next

ES6ラーニング・ノート V: 課題の分解

分解可能な代入とは、代入演算子=を配列やオブジェクトに対して操作できるように拡張したものです 利点:コードが簡潔で読みやすく書かれている 1. オブジェクトの分解 2. 配列の分解 3. 入れ子構造の分解が可能

Apr 26, 2020 · 1 min read