Сохранение массива в файле javascript и его использование в другом файле

#javascript #arrays

#javascript #массивы

Вопрос:

Я исследовал эту проблему и не нашел простого решения, или оно не было разбито на то, что я могу понять. Это должно быть чрезвычайно просто, но это не так.

Мне нужно сохранить данные (массив) в одном файле (file1)

 const myArray= new Array['data0', 'data1', 'data2'];
module.exports = { myArray};
 

внутри второго файла я пытаюсь импортировать его и вызвать его следующим образом (file2)

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

Комментарии:

1. Вы экспортируете массив как объект со свойством в нем, называемым «myArray». Также вы экспортируете его через старую школу module.exports , а затем пытаетесь импортировать его как модуль ES2015.

2. Кроме того, этот new Array[] синтаксис неверен; все, что вам нужно, это инициализатор массива.

3. Я слышу, что вы говорите. Я не знаю, как это исправить. это кажется таким простым, но я в своем уме

Ответ №1:

Я буду честен с вами, я не могу придумать вариант использования, в котором вам нужно было бы экспортировать / импортировать простой массив строк. Экспорт объекта (возможно, содержащего массив) имеет немного больше полезности. Но должно сработать следующее.

 // file1.mjs
const myArray = ['data0', 'data1', 'data2'];
export default myArray;
 
 // file2.mjs
import myArray from './file1.mjs';
console.log('myArray =>', myArray);
 

Комментарии:

1. это просто выдает ошибку TypeError: не ошибка конструктора

2. Я не знаю, как вы получили ошибку типа, но была ошибка ссылки (упс!). Повторите попытку. Я не знаю, на каком движке JS вы это используете, но в Node вам, возможно, придется обновить package.json и запустить свое приложение следующим node --experimental-modules file2.mjs образом. nodejs.org/api/packages.html#packages_determining_module_system

3. Я работаю в узле. Спасибо. Я смог решить эту проблему с помощью вашего предложения.

Ответ №2:

Экспорт

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

Импорт

 import { myArray } from './file1'; 

Комментарии:

1. та же проблема. Я получаю ошибку «не конструктор»

2. const myArray= новый массив[‘data0’, ‘data1’, ‘data2’]; это неправильно, вы не можете создать массив таким образом. const myArray = [‘data0’, ‘data1’, ‘data2’]; как это или const myArray = новый массив (‘data0’, ‘data1’, ‘data2’); как это

3. но затем я добавил console.log

Ответ №3:

Вот что я сделал, что сработало для меня (это в узле, не уверен насчет браузера)

file2.js:

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

file1.js:

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

выходные данные: [‘a’,’b’,’c’]

необходимо установить «type»:»module» в package.json

Сначала я тоже был сбит с толку тем, почему другие сообщения не работали, но когда я изменил его на полное имя файла, это сработало.