[Atribuição de desestruturação] —— Habilidades de método de atribuição de desestruturação de array-ES6

A atribuição de desestruturação também é uma nova sintaxe do ES6 em JavaScript, vamos apenas ver os exemplos e começar a trabalhar! ! !

Muitos alunos aprenderam a usar expressões de atribuição de desestruturação para trocar valores de variáveis :

let a = 'b';
let b = 'a';

[a,b] =  [b,a];

console.log(a,b);


Mas a troca de variáveis ​​não se limita a duas variáveis ​​e, se você precisar classificar, desestruturar expressões é uma opção.

let num1 = 30;
let num2 = 10;
let num3 = 40;
let num4 = 20;

[num1,num2,num3,num4] = [num2,num4,num1,num3];

console.log(`第一:${num1},第二:${num2},第三:${num3},第四:${num4}`);


Se você tiver um array, só precisamos pegar três elementos:

Anteriormente apenas atribuiríamos valores um a um:

const arr = ['蛋同学','鸡同学','鸭同学','鹅同学','牛同学','羊同学'];

const num1  = arr[0];
const num2  = arr[1];
const num3  = arr[2];

Agora só precisamos escrever da seguinte forma, três variáveis ​​serão automaticamente criadas e atribuídas a elas, respectivamente. Observe que aqui o valor é obtido de acordo com a posição na matriz .

const arr = ['蛋同学','鸡同学','鸭同学','鹅同学','牛同学','羊同学'];

const [num1,num2,num3]  = arr;

console.log(`第一名:${num1},第二名:${num2},第三名:${num3}`);


Claro, há uma situação em que você só precisa colocar o elemento na posição especificada dentro. Nesse momento, você pode usar vírgulas em inglês para separar, o que quiser

const arr = ['蛋同学','鸡同学','鸭同学','鹅同学','牛同学','羊同学'];

const [,,num3,,num5]  = arr;

console.log(`第三名:${num3},第五名:${num5}`);


Aqui está um detalhe, se o nome da variável que você deseja desconstruir e atribuir já existe, podemos reescrever o valor da variável. Desestruturar e atribuir não é usado necessariamente para variáveis ​​recém-criadas, mas também para modificar variáveis, e deve ser observado aqui Não há necessidade de var, let ou const para declarar variáveis.

const arr = ['蛋同学','鸡同学','鸭同学','鹅同学','牛同学','羊同学'];

let num3 = '狗同学';
let num5 = '猪同学';

[,,num3,,num5]  = arr;

console.log(`第三名:${num3},第五名:${num5}`);


 É claro que uma determinada posição na matriz pode não existir.Neste momento, é mais adequado definir o valor padrão, ou seja, adicionar diretamente o valor na posição especificada atribuindo um valor.

const arr = ['蛋同学','鸡同学','鸭同学','鹅同学','牛同学','羊同学'];

let num3 = '狗同学';
let num5 = '猪同学';

[,,num3,,num5,,num7 = '鹿同学']  = arr;

console.log(`第三名:${num3},第五名:${num5},第七名:${num7}`);


Mas, na verdade, é bastante problemático acessar os arrays de tinta dessa maneira. Podemos mudar os colchetes para chaves (chaves) e especificar o número de série do elemento na forma de um atributo, para que possamos definir variáveis ​​com mais facilidade.

const arr = ['蛋同学','鸡同学','鸭同学','鹅同学','牛同学','羊同学'];

const{2:num3, 4:num5}  = arr;

console.log(`第三名:${num3},第五名:${num5}`);


É possível que toda a matriz esteja vazia e o valor padrão possa julgar automaticamente a condição para você. Por exemplo, se a matriz estiver vazia, exibirá automaticamente "matriz está vazia" e, se a matriz não estiver vazia, substituirá diretamente o valor padrão.


Além de atribuir valores um a um, se os elementos restantes da matriz precisarem ser salvos, três pontos podem ser usados ​​para indicar que os elementos não superiores restantes estão todos reunidos em uma matriz.

Obs: Não é possível colocar elementos indeterminados primeiro , e depois atribuir valores um a um depois.

const arr = ['蛋同学','鸡同学','鸭同学','鹅同学','牛同学','羊同学'];

const[num1,num2,num3,...restNum]  = arr;

console.log(`第三名是:${num1},${num2},${num3},不及格的是:${restNum}`);


Se houver apenas um elemento indeterminado ao desconstruir e atribuir, a matriz inteira será realmente copiada

const arr = ['蛋同学','鸡同学','鸭同学'];

const[...copyArr]  = arr;

console.log(copyArr);

 

 Também não precisamos chamar o método concat para copiar o array


Também podemos desestruturar arrays aninhados:

const arr = ['蛋同学','狗同学',['鸡同学','鸭同学'],['鹅同学','牛同学','羊同学'],'鹿同学'];

const[num1,,[,num2],[,,num3]] = arr;

console.log(`第1个数组的第1个元素:${num1},第2个数组的第2个元素:${num2},第3个数组的第3个元素:${num3}`);

Acho que você gosta

Origin blog.csdn.net/qq_50497708/article/details/128101715
Recomendado
Clasificación