var [foo] = bar 的含义?
Meaning of var [foo] = bar?
我看到了如下代码片段。谁能告诉我是什么
var [input] = data; var [checkbox, payee, amount] = data2;
是什么意思?
function example(data,data2){
var [input] = data;
var [checkbox, payee, amount] = data2;
............
............
}
The destructuring assignment syntax is a JavaScript expression that
makes it possible to unpack values from arrays, or properties from
objects, into distinct variables.
按照你的例子,
var data = [1];
var [input] = data;
console.log(input); //1
正如 Nina Scholz 在她的评论中所述,这是一个解构赋值。
如果 data2
是 [1, 2, 3]
的数组,那么 var [checkbox, payee, amount] = data2;
等同于:
var checkbox = data2[0]; // 1
var payee = data2[1]; // 2
var amount = data2[2]; // 3
其余参数
您可以像下面的示例一样使用带有 rest 参数的解构,将多个元素保存到一个数组中。
const digits = [1, 2, 3, 4, 5];
const [one, ...other] = digits;
console.log(one);
console.log(other);
省略值
您可以忽略不感兴趣的值,像这样:
const myArray = ["car", "cat", "house", "dog", "window", "mouse"];
const [, cat, ,dog, , mouse] = myArray;
console.log(cat, dog, mouse);
或者像这样:
const myArray = ["John", "Mary", "Steve", 0, 1, 2];
const [name1, name2, name3] = myArray;
console.log(name1, name2, name3);
var t = [1,2];
var [a,b] = t;
console.log(a);
console.log(b);
当用于数组时,它将连续的数组元素分配给在赋值运算符左侧引入的变量。
这是一个 destructuring assignment with an array/iterable object (with implemented Symbol.iterator
) 具有要分配的值。
该值进入与给定数据具有相同索引的变量。
要仅获取特定索引处的某些部分,您可以使用以索引作为键的对象。
var array = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'];
[zero, one] = array,
{ 3: three, 10: ten } = array;
console.log(zero);
console.log(one);
console.log(three);
console.log(ten);
我看到了如下代码片段。谁能告诉我是什么
var [input] = data; var [checkbox, payee, amount] = data2;
是什么意思?
function example(data,data2){
var [input] = data;
var [checkbox, payee, amount] = data2;
............
............
}
The destructuring assignment syntax is a JavaScript expression that makes it possible to unpack values from arrays, or properties from objects, into distinct variables.
按照你的例子,
var data = [1];
var [input] = data;
console.log(input); //1
正如 Nina Scholz 在她的评论中所述,这是一个解构赋值。
如果 data2
是 [1, 2, 3]
的数组,那么 var [checkbox, payee, amount] = data2;
等同于:
var checkbox = data2[0]; // 1
var payee = data2[1]; // 2
var amount = data2[2]; // 3
其余参数
您可以像下面的示例一样使用带有 rest 参数的解构,将多个元素保存到一个数组中。
const digits = [1, 2, 3, 4, 5];
const [one, ...other] = digits;
console.log(one);
console.log(other);
省略值
您可以忽略不感兴趣的值,像这样:
const myArray = ["car", "cat", "house", "dog", "window", "mouse"];
const [, cat, ,dog, , mouse] = myArray;
console.log(cat, dog, mouse);
或者像这样:
const myArray = ["John", "Mary", "Steve", 0, 1, 2];
const [name1, name2, name3] = myArray;
console.log(name1, name2, name3);
var t = [1,2];
var [a,b] = t;
console.log(a);
console.log(b);
当用于数组时,它将连续的数组元素分配给在赋值运算符左侧引入的变量。
这是一个 destructuring assignment with an array/iterable object (with implemented Symbol.iterator
) 具有要分配的值。
该值进入与给定数据具有相同索引的变量。
要仅获取特定索引处的某些部分,您可以使用以索引作为键的对象。
var array = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'];
[zero, one] = array,
{ 3: three, 10: ten } = array;
console.log(zero);
console.log(one);
console.log(three);
console.log(ten);