JavaScript模式:这是为数组分配多个值的有效方法吗?
JavaScript Pattern: Is this a valid way of assigning multiple values to an array?
我在CodeReview上看到过这种模式:https://codereview.stackexchange.com/questions/144954/generate-a-table-with-random-numbers
最后一个函数"shuffeledArray"。
下面的代码用于在一次操作中为数组赋多个值:
var demo = [];
[demo[0], demo[1], demo[2]] = [2, 4, 8];
console.log(demo);
它的工作原理。
但我问自己:
应该使用这些技术吗?还是有缺点?
这只是一个很差的例子:解构赋值。
一个更好的例子使析构赋值的有用性更加明显。考虑一个函数需要返回多个返回值的情况。通常,返回一个对象或数组。通过解构赋值,可以使用单个变量来消费返回值:
作为对象:
function minMax(a) {
let min = a[0], max = a[0];
a.forEach(entry => {
if (min > entry) {
min = entry;
}
if (max < entry) {
max = entry;
}
});
return {min, max};
}
let {min, max} = minMax([2, 4, 8]);
console.log(min, max);
作为数组:
function minMax(a) {
let min = a[0], max = a[0];
a.forEach(entry => {
if (min > entry) {
min = entry;
}
if (max < entry) {
max = entry;
}
});
return [min, max];
}
let [min, max] = minMax([2, 4, 8]);
console.log(min, max);
使用对象进行解构尤其有用,例如,在处理模块时。假设一个模块导出了一大堆东西,其中你只需要foo
和bar
:
import {foo, bar} from "./module";
关于不使用它的浏览器支持参数:这就是编译的目的。在IE9的两年多时间里(是的,在规范最终确定之前),由于编译,我一直很高兴地在浏览器项目中使用ES2015。
语法是ES6
并且完全有效,为了使其与现有浏览器兼容,您可能需要使用babel或跟踪器来编译您的ES6 code to ES5 code to run in browser.
var [a, b] = [1, 2];
console.log(a, b);
上面的代码可以将1和2分别赋值给a和b。
var [a, ...b] = [1, 2, 3];
console.log(a, b);
在上面的代码中,我们使用扩展运算符给a = 1
和b = [2,3]
赋值
关于Array destructing.
的更多主题
相关文章:
- 在jQuery中创建向下滑动子菜单的最有效方法
- 使用Underscore.js修改json数组中所选元素的更有效方法
- 选择具有值数组的所有元素的最有效方法
- 将JSON存储和恢复到此Ionic应用程序的最有效方法
- 将javascript数组中的项移动到特定位置的有效方法
- 将JS对象数组转换为嵌套形式的最有效方法
- 隐藏具有特定类$.each、for等的元素的有效方法
- 什么's是调用具有可变参数的函数的有效方法
- 选择具有特定数据的所有 html 标记的最有效方法是什么 - [适当性],无论值如何
- 使用 jQuery 调用 PHP 端点的最有效方法
- 这是解析 Int 的有效方法吗?
- 在JavaScript中搜索数组映射的最有效方法
- 获取字符串中最后一个换行符的最有效方法是什么
- 什么's是在两个(或多个)阵列中找到匹配的细胞序列的最有效方法
- 什么's是在IE8+中添加元素的最有效方法
- 从任何jquery选择器字符串创建元素的最有效方法
- 在日期范围内查找丢失日期的最有效方法是什么
- 对区间[1,10^12]中的整数进行编码/解码的快速有效方法是什么
- 在条件(if)结构的条件语句中是否有定义变量的有效方法
- 在ASP.NET中使用JQuery UI自动完成的有效方法