首页 > 解决方案 > Javascript 中使用 new Array() 和 new Object 创建数组的区别

问题描述

我看到使用创建数组的示例

var array = new Array(5);

但我也看到了这样的东西

arrayObj[0] = "index zero";
arrayObj[10] = "index ten";

我认为上面的代码创建了一个具有两个字段名称 0 和 10 的对象,如下所示?那是对的吗?

arrayobj {
0: "index zero"
10: "index ten"
}

这两种使用 new Array() 和 new Object 创建数组的方式有什么不同吗?

标签: javascript

解决方案


Array并且Object彼此不同。从技术上讲,您正在做的事情使数据结构和实用程序暂时保持不变,但是您错过了原型功能并且无法使用它。

例如Array.forEach(),将在数组上循环,但不会在其键/值对等效于数组的索引/项的对象上循环

var array = new Array(5).fill('index');

arrayObj = {};
arrayObj[0] = "index zero";
arrayObj[10] = "index ten";
try {
  console.log(array.length);
  array.forEach(i => console.log(i));
  
  

  console.log(arrayObj.length);
  arrayObj.forEach(i => console.log(i));
  } catch (e) { console.error(e); }
  
  //looping over Object
  
  Object.keys(arrayObj).forEach((item)=>{ 
     console.log(arrayObj[item]);
  });


推荐阅读