割り当て構造分解(rest)
14102 ワード
こうぞうぶんかいわりあて
構造分解割り当ては、オブジェクトまたは配列を簡単に分解して変数に格納する機能です.
変数の順序は要素の順序と一致します.
代入したくないお金は空けておいてもいいです.
デフォルト値は
変数名を変更する場合は、再宣言することなくtallに割り当てた後に使用できます.
受信したキー値が空の場合は、パラメータにも適用されます.
restはspreadと似ているように見えますが、役には大きな違いがあります.
restは、オブジェクト、配列、および関数のパラメータが渡す値をグループ化するために使用されます.
変数の名前は必ずしも同じではないため、通常restを変数名として使用し、浅いコピーを行います.
このとき...restが最後になく、後に変数がある場合はエラーが発生します.アレイの非構造化割り当ても同様の方法を採用することができる. 関数パラメータ を使用
これは、パラメータとしてどのくらいのパラメータを渡すか分からない場合に便利です.関数のパラメータの場合、restを使用してパラメータに展開できます.以下に示します.
restはパラメータ(パラメータ)をパラメータからアレイ(Array)に渡す役割を果たす.
構造分解割り当ては、オブジェクトまたは配列を簡単に分解して変数に格納する機能です.
const [a, , c, d, e = 5] = [1, 2, 3]
console.log(a) // 1
console.log(c) // 3
console.log(d) // undefined
console.log(e)// 5
構造分解を割り当てるときは,順序が重要である.変数の順序は要素の順序と一致します.
代入したくないお金は空けておいてもいいです.
デフォルト値は
undefined
で、デフォルト値を設定できます.const obj = {
name: '철수',
body: {
height: 120,
weight: 35,
}
}
const {name, body: {height: tall}, age, school = '다람쥐유치원'} = obj
console.log(name, tall, age, school) // '철수' 120 undefined '다람쥐유치원'
構造分解オブジェクトを割り当てる場合は、オブジェクトのキー値と変数名が一致する必要があります.変数名を変更する場合は、再宣言することなくtallに割り当てた後に使用できます.
受信したキー値が空の場合は、
undefined
と入力してデフォルト値を設定します.const destruct = ({name, age: a, tall = 120}) => {
console.log(name) // '철수'
console.log(a) // 7
console.log(tall) // 120
}
destruct({name: '철수', age: 7})
restrestはspreadと似ているように見えますが、役には大きな違いがあります.
restは、オブジェクト、配列、および関数のパラメータが渡す値をグループ化するために使用されます.
const child = {
name: '철수',
age: 7,
}
const { ...rest } = child
console.log(rest); // { name: '철수', age: 7 }
オブジェクトまたは配列でrestを使用する場合、構造分解割り当て構文とともに使用されます.変数の名前は必ずしも同じではないため、通常restを変数名として使用し、浅いコピーを行います.
const child = {
name: '철수',
age: 7,
body: {
height: 120,
weight: 35,
}
}
const { name, ...rest } = child
console.log(name); // '철수'
console.log(rest); // { age: 7, body: { height: 120, weight: 35 } }
rest.age = 10
rest.body.height = 140
console.log(rest) // { age: 10, body: { height: 140, weight: 35 } }
console.log(child)
/*
{
name: '철수',
age: 7,
body: { height: 140, weight: 35, age: 10 }
}
*/
プロパティを分離する場合は、変数名をキーと同じキーに設定して分離できます.このとき...restが最後になく、後に変数がある場合はエラーが発生します.
const a = [1, 2, 3];
const [one, ...rest] = a;
console.log(one); // 1
console.log(rest); // [2, 3]
const a = (one, ...rest) => {
if (one === 1)
return rest;
}
console.log(a(1, 2, 3)) // [2, 3]
restを使用して、関数が渡す残りのパラメータを配列にグループ化します.これは、パラメータとしてどのくらいのパラメータを渡すか分からない場合に便利です.
const sum = (...rest) => rest.reduce((a, c) => a + c);
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(sum(...numbers)) // 55
spreadは関数のパラメータ配列(numbers)の展開方式であり、配列(numbers)を複数のパラメータにするために用いられる.restはパラメータ(パラメータ)をパラメータからアレイ(Array)に渡す役割を果たす.
Reference
この問題について(割り当て構造分解(rest)), 我々は、より多くの情報をここで見つけました https://velog.io/@ljh305/구조분해할당restテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol