javascript - JavaScript ES6 Spread 运算符可以与类似数组的对象一起使用吗?
问题描述
我发现 Spread 运算符可用于arguments
:
function foo() {
[...arr] = arguments;
console.log(arr, Array.isArray(arr));
}
foo(1, 3, 5);
// note that we could also use function foo(...args) { } to begin with
但不适用于类似数组的对象(它会抛出错误TypeError: undefined is not a function
):
let obj = { 0: "abc", 1: 3.14, length: 2 };
[...arr] = obj;
console.log(arr, Array.isArray(arr));
那么Spread 运算符可以与类似数组的对象一起使用吗?
作为旁注,以下内容都可以创建一个数组:
let obj = { 0: "abc", 1: 3.14, length: 2 };
let arr = Array.prototype.slice.call(obj);
console.log(arr, Array.isArray(arr));
let arr2 = Array.from(obj);
console.log(arr2, Array.isArray(arr2));
解决方案
推荐阅读
- python - python无法在jupyter中导入硒
- c++ - 类型未正确导入
- drop-down-menu - Digitalmicrograph DM 脚本 - 从另一个对话框更新下拉项目
- mysql - 如何获得结果集的交集?
- python - 将模型类导入填充脚本的问题
- wix - Wix Toolkit 3.11 util 命名空间在构建时无法加载
- python - 如何访问嵌套字典的内部值
- c# - 无法使用 C# 在 selenium 浏览器中单击
- java - JNI:converting jstring(full of number) into jint using Integer.pasteInt by jvmti导致Crash
- sql - 尝试在nestjs中创建用户时,用户名中没有默认值