在 JavaScript 文件中存储一个数组并在另一个文件中使用它

4
我已经研究了这个问题,但并没有找到简单的解决方案,或者它还没有被分解成我可以理解的内容。这应该是极其简单的,但现在却不是。
我需要把数据(数组)存储在一个文件(file1)中。
const myArray= new Array['data0', 'data1', 'data2'];
module.exports = { myArray};

我尝试导入第二个文件,并像这样调用它(file2)的内部。

import myArray from './file1';
console.log myarray[0, 1, 2]

你将数组导出为一个带有属性“myArray”的对象。同时,你通过老式的module.exports进行导出,然后尝试以ES2015模块的形式进行导入。 - Pointy
1
另外,new Array[] 语法是不正确的;你只需要使用数组初始化器即可。 - Pointy
我听到你说的话了。我不知道如何修复它。看起来很简单,但我已经束手无策了。 - Jason V
3个回答

3

说实话,我想不到一个使用情况需要导入/导出简单的字符串数组。导出一个对象(包含数组,也许)会更有用一些。但以下内容应该可以工作。

// file1.mjs
const myArray = ['data0', 'data1', 'data2'];
export default myArray;

// file2.mjs
import myArray from './file1.mjs';
console.log('myArray =>', myArray);

这只是抛出了一个 TypeError: 不是构造函数的错误。 - Jason V
1
我不知道你是怎么出现 TypeError 的,但是确实有一个 ReferenceError(糟糕!)。请再试一次。我不知道你在哪个 JS 引擎中运行这个程序,但在 Node 中,你可能需要更新你的 package.json 并像下面这样运行你的应用程序:node --experimental-modules file2.mjs。 https://nodejs.org/api/packages.html#packages_determining_module_system - astangelo
我正在运行在Node上。谢谢你的建议,我已经成功解决了这个问题。 - Jason V

1

Export

export const myArray = ['data0', 'data1', 'data2'];

Import

import { myArray } from './file1';


同样的问题。我得到了一个“不是构造函数”的错误。 - Jason V
常量myArray = new Array ['data0','data1','data2']; 这样是错误的,你不能这样创建数组。 const myArray = ['data0','data1','data2']; 像这样或者 const myArray = new Array('data0','data1','data2'); 像这样 - Bogdan Pryvalov
但后来我添加了一个console.log。 - Jason V

1
这是我在Node中做的并且运行成功的(不确定浏览器是否适用)。

file2.js:

const arr = ["a", "b", "c"];
export {arr};

file1.js:

import {arr} from "./file2.js"
console.log(arr);

输出: ['a','b','c']

需要在 package.json 中设置 "type":"module"

一开始我也很困惑为什么其他帖子不起作用,但当我将它改为完整的文件名时,它就可以工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接